issoux
Messages postés58Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention 6 mai 2008
-
1 nov. 2006 à 15:31
issoux
Messages postés58Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention 6 mai 2008
-
1 nov. 2006 à 15:48
Bonjour,
J'utilise dans une stored procedure trois Insert . J'ai besoin de l'id du premier insert pour le mettre dans le deuxieme Insert . Mes id sont des champs auto-Incrémenté dans ma table .
je sais que la variable @@identity contient l'id apres l'insert .
mais si je fais 3 insert à la suite les un apres les autres comme ceci :
insert into t1 values (@var1,@var2,@var3)
insert iuto t2 values (@@identity,@var4,@var5)
-- ici il faut que Identity renvoie l'id du premier insert
insert into t3 values (@@identity,@var7,@var8)
-- Est ce qu'ici l'identity renvoie l'id du 2eme insert ????
En clair, est-ce que @@identity est reaffecté apres chaque insert ????
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 1 nov. 2006 à 15:44
Bonjour,
Oui, @@IDENTITY est bien modifié après chaque insertion dans une table (chaque enregitrement envoyé dans une table change sa valeur), et la valeur qui est renvoyé est celle du dernier enregistrement.
En clair si tu as besoin de l'identifiant lors du premier INSERT il faudra passer par une variable :
DECLARE @monid int
insert into t1 values (@var1,@var2,@var3)
SET @monid = @@IDENTITY
insert iuto t2 values (@@identity,@var4,@var5)
-- ici il faut que Identity renvoie l'id du premier insert
insert into t3 values (@@identity,@var7,@var8)
-- Est ce qu'ici l'identity renvoie l'id du 2eme insert ????