Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Retorna o último ID inserido sem usar uma segunda consulta


A maioria das pessoas faz isso da seguinte maneira:
INSERT dbo.Users(Username)
VALUES('my new name');

SELECT NewID = SCOPE_IDENTITY();

(Ou em vez de uma consulta, atribuindo isso a uma variável.)

Portanto, não são realmente duas consultas na tabela ...

No entanto, também existe a seguinte maneira:
INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');

Você realmente não poderá recuperar isso com ExecuteNonQuery , no entanto.