Você pode fazer com que o ID recém-inserido seja enviado para o console do SSMS assim:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Você pode usar isso também de, por exemplo, C#, quando você precisar obter o ID de volta ao seu aplicativo de chamada - basta executar a consulta SQL com
.ExecuteScalar()
(em vez de .ExecuteNonQuery()
) para ler o ID
resultante de volta. Ou se você precisar capturar o
ID
recém-inserido dentro do T-SQL (por exemplo, para processamento posterior), você precisa criar uma variável de tabela:DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Dessa forma, você pode colocar vários valores em
@OutputTbl
e fazer processamento adicional sobre eles. Você também pode usar uma tabela temporária "regular" (#temp
) ou até mesmo uma tabela persistente "real" como seu "destino de saída" aqui.