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í.