SQL 2000
je voudrais savoir comment éxécuter une procédure stockée qui passe
ansi_nulls et ansi_warnings à ON.
cette procédure stockée doit être appelée par un programme et ensuite la
connexion qui l'a appelée devrait avoir ces options configurées à ON (c'est
ce qui est écrit dans la doc) jusqu'à ce qu'elle soit fermée.
de cette façon on peut faire des opérations sur un serveur lié en SQL 2000
aussi mais sous un autre classement.
seulement à la sortie de la procédure stockée, on se retrouve avec les
options remises à OFF alors qu'on a pas changé de connexion. si on exécute
la commande dans l'analyseur de requêtes, on garde les paramètres bien
positionnés pour la connexion mais si on essaie de les configurer par le
biais d'une procédure stockée, ils disparaissent immédiatement lorsqu'elle
se termine.(?????)
Si quelq'un a déja rencontré le problème et l'a résolu, ou a une autre
solution à proposer (sans déplacer les bases de données) je suis preneur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Med Bouchenafa[MVP]
Il y a une subtilité à prendre en contact dans ce cas. Il y a deux options QUOTED_IDENTIFIER et ANSI_NULLS dont l'état est enregistrée de manière transparente dans la procédure elle-même Ce qui compte, c'est la valeur qu'elles ont au moment de la création ou de la modification de la procédure. Les modifier à l'intérieur de la procédure ne les changera pas. Ce qui n'est pas le cas de ANSI_WARNINGS dont la valeur prise en compte est celle à l'intérieur. Il faudrait donc que tu réécrives tes procédures dans l'analyseur de requêtes comme suit
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
ALTER PROCEDURE.... AS SET ANSI_WARNINGS ON .... .... ..... .... --fin procédure
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO
J'espère avoir été clair car c'est pas évident
-- Bien cordialement Med Bouchenafa TETRASET 75015 Paris
"Otra" <informatique@@uesl.fr> wrote in message news:
Bonjour,
SQL 2000 je voudrais savoir comment éxécuter une procédure stockée qui passe ansi_nulls et ansi_warnings à ON. cette procédure stockée doit être appelée par un programme et ensuite la connexion qui l'a appelée devrait avoir ces options configurées à ON
(c'est
ce qui est écrit dans la doc) jusqu'à ce qu'elle soit fermée. de cette façon on peut faire des opérations sur un serveur lié en SQL 2000 aussi mais sous un autre classement. seulement à la sortie de la procédure stockée, on se retrouve avec les options remises à OFF alors qu'on a pas changé de connexion. si on exécute la commande dans l'analyseur de requêtes, on garde les paramètres bien positionnés pour la connexion mais si on essaie de les configurer par le biais d'une procédure stockée, ils disparaissent immédiatement lorsqu'elle se termine.(?????)
Si quelq'un a déja rencontré le problème et l'a résolu, ou a une autre solution à proposer (sans déplacer les bases de données) je suis preneur.
Il y a une subtilité à prendre en contact dans ce cas.
Il y a deux options QUOTED_IDENTIFIER et ANSI_NULLS dont l'état est
enregistrée de manière transparente dans la procédure elle-même
Ce qui compte, c'est la valeur qu'elles ont au moment de la création ou de
la modification de la procédure.
Les modifier à l'intérieur de la procédure ne les changera pas.
Ce qui n'est pas le cas de ANSI_WARNINGS dont la valeur prise en compte est
celle à l'intérieur.
Il faudrait donc que tu réécrives tes procédures dans l'analyseur de
requêtes comme suit
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE....
AS
SET ANSI_WARNINGS ON
....
....
.....
....
--fin procédure
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
J'espère avoir été clair car c'est pas évident
--
Bien cordialement
Med Bouchenafa
TETRASET
75015 Paris
"Otra" <informatique@@uesl.fr> wrote in message
news:uwkbkjqqDHA.2000@TK2MSFTNGP09.phx.gbl...
Bonjour,
SQL 2000
je voudrais savoir comment éxécuter une procédure stockée qui passe
ansi_nulls et ansi_warnings à ON.
cette procédure stockée doit être appelée par un programme et ensuite la
connexion qui l'a appelée devrait avoir ces options configurées à ON
(c'est
ce qui est écrit dans la doc) jusqu'à ce qu'elle soit fermée.
de cette façon on peut faire des opérations sur un serveur lié en SQL 2000
aussi mais sous un autre classement.
seulement à la sortie de la procédure stockée, on se retrouve avec les
options remises à OFF alors qu'on a pas changé de connexion. si on exécute
la commande dans l'analyseur de requêtes, on garde les paramètres bien
positionnés pour la connexion mais si on essaie de les configurer par le
biais d'une procédure stockée, ils disparaissent immédiatement lorsqu'elle
se termine.(?????)
Si quelq'un a déja rencontré le problème et l'a résolu, ou a une autre
solution à proposer (sans déplacer les bases de données) je suis preneur.
Il y a une subtilité à prendre en contact dans ce cas. Il y a deux options QUOTED_IDENTIFIER et ANSI_NULLS dont l'état est enregistrée de manière transparente dans la procédure elle-même Ce qui compte, c'est la valeur qu'elles ont au moment de la création ou de la modification de la procédure. Les modifier à l'intérieur de la procédure ne les changera pas. Ce qui n'est pas le cas de ANSI_WARNINGS dont la valeur prise en compte est celle à l'intérieur. Il faudrait donc que tu réécrives tes procédures dans l'analyseur de requêtes comme suit
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
ALTER PROCEDURE.... AS SET ANSI_WARNINGS ON .... .... ..... .... --fin procédure
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO
J'espère avoir été clair car c'est pas évident
-- Bien cordialement Med Bouchenafa TETRASET 75015 Paris
"Otra" <informatique@@uesl.fr> wrote in message news:
Bonjour,
SQL 2000 je voudrais savoir comment éxécuter une procédure stockée qui passe ansi_nulls et ansi_warnings à ON. cette procédure stockée doit être appelée par un programme et ensuite la connexion qui l'a appelée devrait avoir ces options configurées à ON
(c'est
ce qui est écrit dans la doc) jusqu'à ce qu'elle soit fermée. de cette façon on peut faire des opérations sur un serveur lié en SQL 2000 aussi mais sous un autre classement. seulement à la sortie de la procédure stockée, on se retrouve avec les options remises à OFF alors qu'on a pas changé de connexion. si on exécute la commande dans l'analyseur de requêtes, on garde les paramètres bien positionnés pour la connexion mais si on essaie de les configurer par le biais d'une procédure stockée, ils disparaissent immédiatement lorsqu'elle se termine.(?????)
Si quelq'un a déja rencontré le problème et l'a résolu, ou a une autre solution à proposer (sans déplacer les bases de données) je suis preneur.
Otra
Merci de votre réponse.
Nous n'avions pas essayé de ALTER TABLE. je ferais un retour la-dessus lundi de retour au bureau.
Précisions : le problème est que le paramètre ANSI_WARNINGS est mal positionné et bloque le traitement sur le serveur lié. nous nous sommes rendus compte que le fait de le mettre lui seul à ON permettait d'excuter les procédures stockées. Cependant il n'est pas conservé à la sortie de la procédure stockée et repasse à OFF. le fait de le rajouter dans chacune des procédures stockées concernées n'est pas dérangeant dans notre cas au vu du faible nombre de requêtes en cause mais avec les passages de paramètres il est difficile de l'intégrer dans une procédure stockée (le GO de fin de positionnement de ANSI_WARNINGS nous fait perdre les paramètres). Nous ne voyons pas comment conserver nos paramètres dans les procédures stockées après la fin de transaction qui applique le paramètre ANSI_WARNINGS, ce qui pourrait constituer une autre solution au problème
Cordialement Bon Week-end à tous
Merci de votre réponse.
Nous n'avions pas essayé de ALTER TABLE. je ferais un retour la-dessus lundi
de retour au bureau.
Précisions :
le problème est que le paramètre ANSI_WARNINGS est mal positionné et bloque
le traitement sur le serveur lié.
nous nous sommes rendus compte que le fait de le mettre lui seul à ON
permettait d'excuter les procédures stockées.
Cependant il n'est pas conservé à la sortie de la procédure stockée et
repasse à OFF.
le fait de le rajouter dans chacune des procédures stockées concernées n'est
pas dérangeant dans notre cas au vu du faible nombre de requêtes en cause
mais avec les passages de paramètres il est difficile de l'intégrer dans une
procédure stockée (le GO de fin de positionnement de ANSI_WARNINGS nous fait
perdre les paramètres).
Nous ne voyons pas comment conserver nos paramètres dans les procédures
stockées après la fin de transaction qui applique le paramètre
ANSI_WARNINGS, ce qui pourrait constituer une autre solution au problème
Nous n'avions pas essayé de ALTER TABLE. je ferais un retour la-dessus lundi de retour au bureau.
Précisions : le problème est que le paramètre ANSI_WARNINGS est mal positionné et bloque le traitement sur le serveur lié. nous nous sommes rendus compte que le fait de le mettre lui seul à ON permettait d'excuter les procédures stockées. Cependant il n'est pas conservé à la sortie de la procédure stockée et repasse à OFF. le fait de le rajouter dans chacune des procédures stockées concernées n'est pas dérangeant dans notre cas au vu du faible nombre de requêtes en cause mais avec les passages de paramètres il est difficile de l'intégrer dans une procédure stockée (le GO de fin de positionnement de ANSI_WARNINGS nous fait perdre les paramètres). Nous ne voyons pas comment conserver nos paramètres dans les procédures stockées après la fin de transaction qui applique le paramètre ANSI_WARNINGS, ce qui pourrait constituer une autre solution au problème