Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

scope_identity vs ident_current

Dans ce cas, vous devez écrire le nom de la table, que se passe-t-il si vous décidez de changer le nom de la table ? Vous ne devez pas non plus oublier de mettre à jour votre code pour refléter cela. J'utilise toujours SCOPE_IDENTITY sauf si j'ai besoin de l'ID de l'insert qui se produit dans un déclencheur, alors j'utiliserai @@IDENTITY

De plus, la plus grande différence est que IDENT_CURRENT vous donnera l'identité d'un autre processus qui a fait l'insertion (en d'autres termes, la dernière valeur d'identité générée par n'importe quel utilisateur) donc si vous faites une insertion et que quelqu'un fait une insertion avant de faire un SELECT IDENT_CURRENT vous obtiendra la valeur d'identité de cette autre personne

Voir aussi 6 façons différentes d'obtenir la valeur d'identité actuelle qui contient du code expliquant ce qui se passe lorsque vous placez des déclencheurs sur la table