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?
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?