Beim
SQL-Server kann man den letzten Wert mit
SELECT @@Identity abfragen; aber das ist Gemurkse.
Was würdest du wohl für einen Wert bekommen, wenn zwischendurch weitere Zeilen eingefügt wurden?
Absolut kein Gemurkse. Die Abfrage bezieht sich auf die aktuelle Session (aber nicht auf den eigenen scope).
Eine Einschränkung: Wenn ein Trigger einen Insert macht würde mit SELECT @@Identity die ID des vom Trigger inserteten Datensatzes zurückkommen.
Um auch dieses "Problem" zu umgehen gibt es
SELECT SCOPE_IDENTITY().
Mit dieser wird wirklich nur die letze ID der eigenen Session (und des eigenen scopes) zurückgegeben.
Hier noch ausgedeutscht (in englisch)
Gut hab ich mich mal wieder mit Thema beschäftigt. Scheinbar ist spurlos an mir vorbeigegangen dass
es seit MSSQLSERVER 2005
OUTPUT Clause gibt. Damit können sogar Multiple Inserts zurückgelesen werden.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.