@@identity apres Insertion

Résolu
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008 - 1 nov. 2006 à 15:31
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Derniè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 ????

Merci à vous

Bonne journée .

2 réponses

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 7
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 ????

SELECT @monid

Cordialement

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
3
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008
1 nov. 2006 à 15:48
Merci pour cette information .

Bonne journée .

Issou
0