Es gibt mehrere Möglichkeiten, die zuletzt eingefügte ID nach dem Einfügebefehl zu ermitteln.
@@IDENTITY
: Gibt den letzten Identitätswert zurück, der auf einer Verbindung in der aktuellen Sitzung erzeugt wurde, unabhängig von der Tabelle und dem Bereich der Anweisung, die den Wert erzeugt hat.
SCOPE_IDENTITY()
: Sie gibt den letzten Identitätswert zurück, der durch die Einfügeanweisung im aktuellen Bereich in der aktuellen Verbindung erzeugt wurde, unabhängig von der Tabelle.
IDENT_CURRENT(‘TABLENAME’)
: Sie gibt den letzten Identitätswert zurück, der für die angegebene Tabelle erzeugt wurde, unabhängig von Verbindung, Sitzung oder Bereich. IDENT_CURRENT ist nicht durch den Bereich und die Sitzung begrenzt; es ist auf eine bestimmte Tabelle begrenzt.
Jetzt scheint es schwieriger zu sein, zu entscheiden, welche genau meinen Anforderungen entspricht.
Ich bevorzuge meist SCOPE_IDENTITY().
Wenn Sie select SCOPE_IDENTITY() zusammen mit TableName in der Insert-Anweisung verwenden, erhalten Sie genau das Ergebnis, das Sie erwartet haben.
Quelle: CodoBee