Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT dan metode lain untuk mengambil identitas terakhir

Itu tergantung pada apa yang Anda coba lakukan...

@@IDENTITY

Mengembalikan nilai IDENTITY terakhir yang dihasilkan pada koneksi, terlepas dari tabel yang menghasilkan nilai, dan terlepas dari cakupan pernyataan yang menghasilkan nilai.@@IDENTITY akan mengembalikan nilai identitas terakhir yang dimasukkan ke dalam tabel di sesi Anda saat ini. @@IDENTITY terbatas pada sesi saat ini dan tidak terbatas pada cakupan saat ini. Misalnya, jika Anda memiliki pemicu di tabel yang menyebabkan identitas dibuat di tabel lain, Anda akan mendapatkan identitas yang dibuat terakhir, meskipun pemicu yang membuatnya.

SCOPE_IDENTITY()

Mengembalikan nilai IDENTITY terakhir yang dihasilkan pada koneksi dan oleh pernyataan dalam cakupan yang sama, terlepas dari tabel yang menghasilkan nilai.SCOPE_IDENTITY() mirip dengan @@IDENTITY, tetapi juga akan membatasi nilai ke cakupan Anda saat ini. Dengan kata lain, ini akan mengembalikan nilai identitas terakhir yang Anda buat secara eksplisit, bukan identitas apa pun yang dibuat oleh pemicu atau fungsi yang ditentukan pengguna.

IDENT_CURRENT()

Mengembalikan nilai IDENTITY terakhir yang dihasilkan dalam tabel, terlepas dari koneksi dan cakupan pernyataan yang menghasilkan nilai tersebut. IDENT_CURRENT terbatas pada tabel tertentu, tetapi tidak berdasarkan koneksi atau cakupan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan Daftar Peristiwa Pemicu Server di SQL Server

  2. TSQL:Bagaimana cara mengubah waktu lokal ke UTC? (SQLServer 2008)

  3. Bagaimana cara membuat tampilan terwujud di SQL Server?

  4. Gunakan COLUMNPROPERTY() untuk Mengembalikan Kolom atau Informasi Parameter di SQL Server

  5. Metode SqlDataAdapter.Fill lambat