Bonjour,
voici le code d'une procedure stockée dans laquelle j'aimerais executer
l'instruction
SET IDENTITY_INSERT @table ON.
Bout de code de la procedure:
-- BLA BLA BLA ICI
FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour
voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') ------------------->
J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit
lance une erreur.
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
Ch.
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton identity_insert n'est pas inclus dans ton exec(...) si quelqu'un peut confirmer ?
"osman" a écrit dans le message de news:
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton
identity_insert n'est pas inclus dans ton exec(...)
si quelqu'un peut confirmer ?
"osman" <ofarah@supralog.com> a écrit dans le message de news:
OFxyv6rPGHA.456@TK2MSFTNGP15.phx.gbl...
Bonjour,
voici le code d'une procedure stockée dans laquelle j'aimerais executer
l'instruction
SET IDENTITY_INSERT @table ON.
Bout de code de la procedure:
-- BLA BLA BLA ICI
FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour
voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') ------------------->
J'ai l'impression que cette instruction ne marche pas car le INSERT qui
suit lance une erreur.
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton identity_insert n'est pas inclus dans ton exec(...) si quelqu'un peut confirmer ?
"osman" a écrit dans le message de news:
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
Il me semble bien que si. Les deux EXEC qui le precedent s'executent bien.
"Ch." a écrit dans le message de news: %
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton identity_insert n'est pas inclus dans ton exec(...) si quelqu'un peut confirmer ?
"osman" a écrit dans le message de news:
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
Il me semble bien que si. Les deux EXEC qui le precedent s'executent bien.
"Ch." <christophe@ipnet.fr> a écrit dans le message de news:
%23vcjEpsPGHA.2992@tk2msftngp13.phx.gbl...
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton
identity_insert n'est pas inclus dans ton exec(...)
si quelqu'un peut confirmer ?
"osman" <ofarah@supralog.com> a écrit dans le message de news:
OFxyv6rPGHA.456@TK2MSFTNGP15.phx.gbl...
Bonjour,
voici le code d'une procedure stockée dans laquelle j'aimerais executer
l'instruction
SET IDENTITY_INSERT @table ON.
Bout de code de la procedure:
-- BLA BLA BLA ICI
FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour
voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') ------------------->
J'ai l'impression que cette instruction ne marche pas car le INSERT qui
suit lance une erreur.
Il me semble bien que si. Les deux EXEC qui le precedent s'executent bien.
"Ch." a écrit dans le message de news: %
j'ai pas trop le temps de detailler mais je pense que c'est parce que ton identity_insert n'est pas inclus dans ton exec(...) si quelqu'un peut confirmer ?
"osman" a écrit dans le message de news:
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
Bonjour, Si je ne m'abuse,IDENTITY_INSERT est une variable "d'environnement". La valeur modifiée dans un EXEC de cette variable ne sera donc valable que tant que l'EXEC n'est pas terminé. Dès que vous sortez de l'EXEC, il n'est donc plus possible de forcer une valeur pour l'identity de votre table.
Il faudrait donc sortir la mise à l'assignation de cette valeur de l'EXEC (c'est peut-être plus facile à dire qu'à faire)...
Bonjour,
Si je ne m'abuse,IDENTITY_INSERT est une variable "d'environnement".
La valeur modifiée dans un EXEC de cette variable ne sera donc valable que
tant que l'EXEC n'est pas terminé.
Dès que vous sortez de l'EXEC, il n'est donc plus possible de forcer une
valeur pour l'identity de votre table.
Il faudrait donc sortir la mise à l'assignation de cette valeur de l'EXEC
(c'est peut-être plus facile à dire qu'à faire)...
Bonjour, Si je ne m'abuse,IDENTITY_INSERT est une variable "d'environnement". La valeur modifiée dans un EXEC de cette variable ne sera donc valable que tant que l'EXEC n'est pas terminé. Dès que vous sortez de l'EXEC, il n'est donc plus possible de forcer une valeur pour l'identity de votre table.
Il faudrait donc sortir la mise à l'assignation de cette valeur de l'EXEC (c'est peut-être plus facile à dire qu'à faire)...
Med Bouchenafa
Il faut faire l'ensemble dans un seul EXEC en séparant les différentes parties par un ";"
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
"osman" <ofarah@supralog.com> a écrit dans le message de news:
OFxyv6rPGHA.456@TK2MSFTNGP15.phx.gbl...
Bonjour,
voici le code d'une procedure stockée dans laquelle j'aimerais executer
l'instruction
SET IDENTITY_INSERT @table ON.
Bout de code de la procedure:
-- BLA BLA BLA ICI
FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour
voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') ------------------->
J'ai l'impression que cette instruction ne marche pas car le INSERT qui
suit lance une erreur.
Bonjour, voici le code d'une procedure stockée dans laquelle j'aimerais executer l'instruction SET IDENTITY_INSERT @table ON. Bout de code de la procedure: -- BLA BLA BLA ICI FETCH list_of_tables into @table
SELECT @table AS 'EREKAAAAA' ---------> ca c'est juste pour voir
EXEC ('SET IDENTITY_INSERT dbo.' + @table + ' ON') -------------------> J'ai l'impression que cette instruction ne marche pas car le INSERT qui suit lance une erreur.
Effectivement il faut toujours rappeler que l'exécution dynamique du SQL se fait EN DEHORS du contexte de la procédure. Or le flag IDENTIY INSERT est sensible au contexte puisque valable pour la connexion (session).
A +
Med Bouchenafa a écrit:
Il faut faire l'ensemble dans un seul EXEC en séparant les différentes parties par un ";"
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bonjour,
pour compléter la réponse de Med...
Effectivement il faut toujours rappeler que l'exécution dynamique du SQL se fait
EN DEHORS du contexte de la procédure. Or le flag IDENTIY INSERT est sensible au
contexte puisque valable pour la connexion (session).
A +
Med Bouchenafa a écrit:
Il faut faire l'ensemble dans un seul EXEC en séparant les différentes
parties par un ";"
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Effectivement il faut toujours rappeler que l'exécution dynamique du SQL se fait EN DEHORS du contexte de la procédure. Or le flag IDENTIY INSERT est sensible au contexte puisque valable pour la connexion (session).
A +
Med Bouchenafa a écrit:
Il faut faire l'ensemble dans un seul EXEC en séparant les différentes parties par un ";"
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************