Vous pouvez soit faire en sorte que l'ID nouvellement inséré soit envoyé à la console SSMS comme ceci :
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Vous pouvez également l'utiliser par ex. C #, lorsque vous devez récupérer l'ID de votre application appelante - exécutez simplement la requête SQL avec .ExecuteScalar()
(au lieu de .ExecuteNonQuery()
) pour lire l'ID
résultant retour.
Ou si vous avez besoin de capturer le ID
nouvellement inséré dans T-SQL (par exemple pour un traitement ultérieur ultérieur), vous devez créer une variable de table :
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
De cette façon, vous pouvez mettre plusieurs valeurs dans @OutputTbl
et effectuer un traitement supplémentaire sur ceux-ci. Vous pouvez également utiliser une table temporaire "normale" (#temp
) ou même une "vraie" table persistante comme "cible de sortie" ici.