Puede hacer que la ID recién insertada se envíe a la consola de SSMS de esta manera:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Puede usar esto también desde, p. C#, cuando necesite devolver el ID a su aplicación de llamada, simplemente ejecute la consulta SQL con .ExecuteScalar() (en lugar de .ExecuteNonQuery() ) para leer el ID resultante volver.
O si necesita capturar el ID recién insertado dentro de T-SQL (por ejemplo, para un procesamiento posterior), debe crear una variable de tabla:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
De esta manera, puede poner múltiples valores en @OutputTbl y hacer más procesamiento en esos. También podría usar una tabla temporal "regular" (#temp ) o incluso una tabla persistente "real" como su "objetivo de salida" aquí.