- Le
@@identity
renvoie la dernière identité créée dans la même session. - Le
scope_identity()
renvoie la dernière identité créée dans la même session et la même portée. - Le
ident_current(name)
renvoie la dernière identité créée pour une table ou une vue spécifique dans n'importe quelle session. - L'
identity()
la fonction n'est pas utilisée pour obtenir une identité, elle est utilisée pour créer une identité dans unselect...into
requête.
La session est la connexion à la base de données. La portée est la requête en cours ou la procédure stockée en cours.
Une situation où le scope_identity()
et le @@identity
les fonctions diffèrent, c'est si vous avez un déclencheur sur la table. Si vous avez une requête qui insère un enregistrement, provoquant l'insertion d'un autre enregistrement quelque part par le déclencheur, le scope_identity()
renverra l'identité créée par la requête, tandis que la fonction @@identity
renverra l'identité créée par le déclencheur.
Donc, normalement, vous utiliseriez le scope_identity()
fonction.