sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera ett värde från en INSERT-sats i SQL Server 2008

Ja - du kan använda den lite kända och lite använda OUTPUT-klausulen i din INSERT-sats

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

Detta returnerar en normal uppsättning data som du kan hantera som du behöver.

Som MSDN-dokumenten visar kan du även skicka OUTPUT-värdena till t.ex. en tabellvariabel eller temptabell för senare användning, om du behöver.

För att svara på din uppdaterade fråga, använd detta:

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



  1. SQL-sats för avstämning

  2. Hur kan jag använda en samling i en Oracle SQL-sats

  3. Oracle to_date() felaktig utdata

  4. nolock på en temporär tabell i SQL Server 2008