Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoyer une valeur à partir d'une instruction INSERT dans SQL Server 2008

Oui - vous pouvez utiliser la clause OUTPUT peu connue et peu utilisée dans votre instruction INSERT

INSERT INTO dbo.YourTable(col1, col2, col3, ...., ColN)
OUTPUT Inserted.Col1, Inserted.Col5, Inserted.ColN
VALUES(val1, val2, val3, ....., valN)

Cela renvoie un ensemble normal de données, que vous pouvez traiter selon vos besoins.

Comme le montrent les documents MSDN, vous pouvez également envoyer les valeurs OUTPUT, par exemple. une variable de table ou une table temporaire pour une utilisation ultérieure, si nécessaire.

Pour répondre à votre question mise à jour, utilisez ceci :

INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")