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

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT i inne metody odzyskiwania ostatniej tożsamości

To zależy od tego, co próbujesz zrobić...

@@TOŻSAMOŚĆ

Zwraca ostatnią wartość IDENTITY utworzoną w połączeniu, niezależnie od tabeli, która utworzyła wartość, i niezależnie od zakresu instrukcji, która utworzyła wartość. @@IDENTITY zwróci ostatnią wartość tożsamości wprowadzoną do tabeli w bieżącej sesji. @@IDENTITY jest ograniczone do bieżącej sesji i nie jest ograniczone do bieżącego zakresu. Na przykład, jeśli masz wyzwalacz w tabeli, który powoduje utworzenie tożsamości w innej tabeli, otrzymasz tożsamość, która została utworzona jako ostatnia, nawet jeśli to wyzwalacz ją utworzył.

SCOPE_IDENTITY()

Zwraca ostatnią wartość IDENTITY utworzoną w połączeniu i przez instrukcję w tym samym zakresie, niezależnie od tabeli, która utworzyła wartość. SCOPE_IDENTITY() jest podobna do @@IDENTITY, ale ograniczy również wartość do bieżącego zakresu. Innymi słowy, zwróci ostatnią jawnie utworzoną wartość tożsamości, a nie jakąkolwiek tożsamość utworzoną przez wyzwalacz lub funkcję zdefiniowaną przez użytkownika.

IDENT_CURRENT()

Zwraca ostatnią wartość IDENTITY utworzoną w tabeli, niezależnie od połączenia i zakresu instrukcji, która wygenerowała wartość. IDENT_CURRENT jest ograniczone do określonej tabeli, ale nie przez połączenie lub zakres.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlDataSourceEnumerator.Instance.GetDataSources() nie lokalizuje lokalnego wystąpienia serwera SQL 2008

  2. Używanie SQL Server jako kolejki DB z wieloma klientami

  3. błąd, ciąg lub dane binarne zostaną obcięte podczas próby wstawienia

  4. Zwróć nazwę lokalnego serwera w SQL Server z @@NAZWASERWERA

  5. Jak korzystać z funkcji SQL Server T-SQL SUM:5 przypadków użycia