web-dev-qa-db-fra.com

Comment obtenir la dernière ligne d'identité insérée lorsque vous utilisez au lieu de déclencher

Lorsque j'insère dans des tables en utilisant au lieu de déclencheurs, @@Identity, IDENT_CURRENT('Table') et SCOPE_IDENTITY() Retour Null. Comment puis-je obtenir la dernière identité de la ligne insérée?

8
mehdi lotfi

Avec un déclencheur à la place, cela signifie qu'aucun insert n'est survenu. Vous ne pouvez pas connaître l'identité car elle n'était pas encore générée. Sider la valeur de métadonnées est possible ( DBCC CHECKIDENT ) mais s'appuyer sur elle ne fonctionnera pas correctement sous concurrence et que cela nécessite des privilèges élevés.

Au lieu de: des déclencheurs sont extrêmement rarement nécessaires et une odeur de code sérieuse. Êtes-vous sûr d'en avoir besoin? Vous ne pouvez pas faire le travail avec un déclencheur régulier?

8
Remus Rusanu