sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera senast infogade ID utan att använda en andra fråga

De flesta människor gör detta på följande sätt:

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

SELECT NewID = SCOPE_IDENTITY();

(Eller istället för en fråga, tilldela den till en variabel.)

Så det är egentligen inte två frågor mot tabellen ...

Men det finns också följande sätt:

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

Du kommer inte riktigt att kunna hämta detta med ExecuteNonQuery dock.



  1. Hämta data till mallen från en extern databas med django

  2. SQL DELETE med JOIN en annan tabell för WHERE-villkor

  3. Det kan bara finnas en automatisk kolumn

  4. psql:FATAL:Peer-autentisering misslyckades för användarutvecklare