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

Gibt die zuletzt eingefügte ID zurück, ohne eine zweite Abfrage zu verwenden

Die meisten Leute tun dies folgendermaßen:

INSERT dbo.Users(Username)
VALUES('my new name');

SELECT NewID = SCOPE_IDENTITY();

(Oder anstatt einer Abfrage diese einer Variablen zuweisen.)

Es sind also nicht wirklich zwei Abfragen gegen die Tabelle ...

Es gibt aber auch folgenden Weg:

INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');

Sie werden dies nicht wirklich mit ExecuteNonQuery abrufen können , obwohl.