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

Apakah SQL Server menjamin penyisipan kolom identitas secara berurutan?

Dijamin dalam keadaan apa pun Anda tidak bisa mendapatkan nilai yang mungkin kurang dari atau sama dengan nilai maksimum saat ini? Tidak, tidak ada jaminan seperti itu. Meskipun demikian, keadaan di mana skenario itu bisa terjadi terbatas:

  1. Seseorang menonaktifkan penyisipan identitas dan memasukkan nilai.
  2. Seseorang menyemai ulang kolom identitas.
  3. Seseorang mengubah tanda nilai kenaikan (yaitu, alih-alih memberi +1, itu diubah menjadi -1)

Dengan asumsi tidak satu pun dari keadaan ini, Anda aman dari kondisi balapan yang menciptakan situasi di mana nilai berikutnya lebih rendah dari nilai yang ada. Meskipun demikian, tidak ada jaminan bahwa baris akan dikomit dalam urutan nilai-nilai identitas mereka. Misalnya:

  1. Buka transaksi, masukkan ke tabel Anda dengan kolom identitas. Katakanlah mendapat nilai 42.
  2. Sisipkan dan komit ke dalam tabel yang sama nilai lain. Katakanlah mendapat nilai 43.

Sampai transaksi pertama dilakukan, 43 ada tetapi 42 tidak. Kolom identitas hanya menyimpan nilai, tidak menentukan urutan komit.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah SQL Server Pivot tanpa mengetahui nama kolom yang dihasilkan?

  2. TSQL Membandingkan dua Set

  3. Akses Android ke database SQL jarak jauh

  4. Cara Mendeteksi jika Nilai Berisi Setidaknya Satu Nomor di SQL Server

  5. Sertakan bulan yang hilang dalam kueri Grup Berdasarkan