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

SQL Server - Cara terbaik untuk mendapatkan identitas baris yang disisipkan?

  • @@IDENTITY mengembalikan nilai identitas terakhir yang dihasilkan untuk tabel apa pun di sesi saat ini, di semua cakupan. Anda harus berhati-hati di sini , karena ini lintas cakupan. Anda bisa mendapatkan nilai dari pemicu, bukan dari pernyataan Anda saat ini.

  • SCOPE_IDENTITY() mengembalikan nilai identitas terakhir yang dihasilkan untuk tabel apa pun di sesi saat ini dan cakupan saat ini. Umumnya yang ingin Anda gunakan .

  • IDENT_CURRENT('tableName') mengembalikan nilai identitas terakhir yang dihasilkan untuk tabel tertentu dalam sesi apa pun dan cakupan apa pun. Ini memungkinkan Anda menentukan tabel mana yang Anda inginkan nilainya, jika dua di atas tidak sesuai dengan yang Anda butuhkan (sangat jarang ). Juga, seperti yang disebutkan @Guy Starbuck, "Anda bisa menggunakan ini jika Anda ingin mendapatkan nilai IDENTITY saat ini untuk tabel yang belum Anda masukkan catatannya."

  • OUTPUT klausa dari INSERT pernyataan akan membiarkan Anda mengakses setiap baris yang dimasukkan melalui pernyataan itu. Karena dicakup pada pernyataan spesifik, ini lebih mudah daripada fungsi lain di atas. Namun, ini sedikit lebih bertele-tele (Anda harus memasukkan ke dalam variabel tabel/tabel temp dan kemudian menanyakannya) dan itu memberikan hasil bahkan dalam skenario kesalahan di mana pernyataan itu dibatalkan. Karena itu, jika kueri Anda menggunakan rencana eksekusi paralel, ini adalah satu-satunya metode yang dijamin untuk mendapatkan identitas (kependekan dari mematikan paralelisme). Namun, itu dieksekusi sebelum pemicu dan tidak dapat digunakan untuk mengembalikan nilai yang dihasilkan pemicu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan TYPE_NAME() untuk Mendapatkan Nama Tipe Data di SQL Server

  2. Cara Mengubah Kolom atau Menghasilkan Alter Script dengan menggunakan GUI di SQL Server - Tutorial SQL Server / T-SQL Bagian 38

  3. Daftar Semua Kunci Asing pada Tabel di SQL Server

  4. Bagaimana ORIGINAL_DB_NAME() Bekerja di SQL Server

  5. Bagaimana cara melakukan inner join pada nomor baris di sql server