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

Retornando um valor de uma instrução INSERT no SQL Server 2008


Sim - você pode usar a pouco conhecida e pouco usada cláusula OUTPUT em sua instrução INSERT
INSERT INTO dbo.YourTable(col1, col2, col3, ...., ColN)
OUTPUT Inserted.Col1, Inserted.Col5, Inserted.ColN
VALUES(val1, val2, val3, ....., valN)

Isso retorna um conjunto normal de dados, com os quais você pode lidar conforme necessário.

Como mostram os documentos do MSDN, você também pode enviar os valores OUTPUT para, por exemplo, uma variável de tabela ou tabela temporária para uso posterior, se necessário.

Para responder à sua pergunta atualizada, use isto:
INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")