Nowo wstawiony identyfikator może być wysyłany do konsoli SSMS w następujący sposób:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Możesz skorzystać z tego również m.in. C#, gdy potrzebujesz odzyskać identyfikator z powrotem do aplikacji wywołującej — po prostu wykonaj zapytanie SQL za pomocą .ExecuteScalar()
(zamiast .ExecuteNonQuery()
), aby odczytać wynikowy ID
z powrotem.
Lub jeśli chcesz przechwycić nowo wstawiony ID
wewnątrz T-SQL (np. do późniejszego dalszego przetwarzania), musisz utworzyć zmienną tabeli:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
W ten sposób możesz umieścić wiele wartości w @OutputTbl
i dalej je przetwarzaj. Możesz także użyć "zwykłej" tabeli tymczasowej (#temp
) lub nawet „prawdziwą” stałą tabelę jako „cel wyjściowy”.