Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Grund für die Verwendung von @@identity anstelle von scope_identity

@@IDENTITY gibt den letzten Identitätswert zurück, der von der aktuellen Sitzung ausgegeben wurde. SCOPE_IDENTITY() gibt den letzten Identitätswert in der aktuellen Sitzung und im gleichen Bereich zurück. Sie sind normalerweise gleich, nehmen aber an, dass ein Trigger aufgerufen wird, der irgendwo direkt vor der aktuellen Anweisung etwas eingefügt hat. @@IDENTITY gibt den Identitätswert durch INSERT zurück -Anweisung des Triggers, nicht die Insert-Anweisung des Blocks. Es ist normalerweise ein Fehler, es sei denn, er weiß, was er tut.