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

SQL Server 2008:INSERT jika tidak keluar, pertahankan kolom unik

Sungguh gila tidak memiliki indeks.

Ini akan membantu tetapi panjang kunci indeks hanya bisa 900 byte.

Namun, kemungkinan Anda sudah memiliki duplikat karena kemungkinan EXISTS ke-2 berjalan setelah EXISTS ke-1 tetapi sebelum INSERT ke-1.

Pembuatan indeks akan memberi tahu Anda, dan selanjutnya melindungi dari hal ini.

Namun, Anda bisa mendapatkan kesalahan di bawah beban berat.

Pendekatan favorit saya untuk sisipan tinggi/duplikat rendah adalah pola JFDI. Sangat bersamaan

BEGIN TRY
   INSERT etc
END TRY
BEGIN CATCH
    IF ERROR_NUMBER() <> 2627
      RAISERROR etc
END CATCH



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHARINDEX() vs PATINDEX() di SQL Server – Apa Bedanya?

  2. Contoh SQL Server UNTUK JSON AUTO (T-SQL)

  3. Kueri yang efisien untuk membagi kolom yang dibatasi menjadi tabel terpisah

  4. Mempermudah kinerja SQL Server

  5. Cara membuat RAND() Deterministik di SQL Server