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

Bahaya menggunakan 'IF EXISTS... UPDATE .. ELSE.. INSERT' dan apa alternatifnya?

Gunakan MERGE

SQL Anda gagal karena 2 panggilan yang tumpang tindih dan sangat dekat secara bersamaan akan mendapatkan "false" dari EXISTS sebelum INSERT terjadi. Jadi mereka berdua mencoba INSERT, dan tentu saja salah satunya gagal.

Ini dijelaskan lebih lanjut di sini:Pilih / Sisipkan versi Upsert:apakah ada pola desain untuk konkurensi tinggi? Jawaban ini sudah lama dan berlaku sebelum MERGE ditambahkan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Kolom Terhitung menggunakan data dari tabel lain

  2. Kueri SQL untuk dikelompokkan berdasarkan hari

  3. operasi tidak diizinkan ketika objek ditutup saat menjalankan kueri yang lebih maju

  4. SQL Server 2008, klausa WHERE berbeda dengan satu permintaan

  5. Urutan Bersyarat T-SQL Oleh