Je dis la même chose que les autres, donc tout le monde a raison, j'essaie juste de rendre les choses plus claires.
@@IDENTITY
renvoie l'identifiant de la dernière chose qui a été insérée par la connexion de votre client à la base de données.
La plupart du temps, cela fonctionne bien, mais il arrive qu'un déclencheur insère une nouvelle ligne dont vous n'êtes pas au courant, et vous obtenez l'ID de cette nouvelle ligne, au lieu de celui que vous voulez.
SCOPE_IDENTITY()
résout ce problème. Il renvoie l'identifiant de la dernière chose que vous avez inséré dans le code SQL vous avez envoyé à la base de données. Si les déclencheurs créent des lignes supplémentaires, ils n'entraîneront pas le renvoi d'une valeur erronée. Hourra
IDENT_CURRENT
renvoie le dernier ID qui a été inséré par quelqu'un. Si une autre application insère une autre ligne au mauvais moment, vous obtiendrez l'ID de cette ligne au lieu de la vôtre.
Si vous voulez jouer la carte de la sécurité, utilisez toujours SCOPE_IDENTITY()
. Si vous vous en tenez à @@IDENTITY
et que quelqu'un décide d'ajouter un déclencheur plus tard, tout votre code sera cassé.