Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak użyć klauzuli OUTPUT instrukcji INSERT, aby uzyskać wartość tożsamości?

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”.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchom wszystkie pliki SQL w katalogu

  2. Znajdź indeks ostatniego wystąpienia podciągu za pomocą T-SQL

  3. Podłączanie Genero do SQL Server

  4. SQL Server usuwa milisekundy z datetime

  5. Wyświetl listę kont skojarzonych z profilem poczty bazy danych w SQL Server