Du kan enten få det nyligt indsatte ID til at blive udsendt til SSMS-konsollen sådan her:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Dette kan du også bruge fra f.eks. C#, når du har brug for at få ID'et tilbage til din opkaldsapp - udfør bare SQL-forespørgslen med .ExecuteScalar()
(i stedet for .ExecuteNonQuery()
) for at læse det resulterende ID
tilbage.
Eller hvis du har brug for at fange det nyligt indsatte ID
inde i T-SQL (f.eks. til senere videre behandling), skal du oprette en tabelvariabel:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
På denne måde kan du indsætte flere værdier i @OutputTbl
og foretag yderligere behandling af dem. Du kan også bruge en "almindelig" midlertidig tabel (#temp
) eller endda en "rigtig" vedvarende tabel som dit "outputmål" her.