Du kan antingen få det nyinfogade ID:t att matas ut till SSMS-konsolen så här:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Du kan använda detta även från t.ex. C#, när du behöver få tillbaka ID:t till din anropsapp - kör bara SQL-frågan med .ExecuteScalar()
(istället för .ExecuteNonQuery()
) för att läsa det resulterande ID
tillbaka.
Eller om du behöver fånga det nyligen infogade ID
inuti T-SQL (t.ex. för senare vidare bearbetning) måste du skapa en tabellvariabel:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
På så sätt kan du lägga in flera värden i @OutputTbl
och göra ytterligare bearbetning av dessa. Du kan också använda en "vanlig" temporär tabell (#temp
) eller till och med en "riktig" beständig tabell som ditt "utgångsmål" här.