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

Masukkan Perbarui proc yang disimpan di SQL Server

Asumsi Anda benar, ini adalah cara optimal untuk melakukannya dan ini disebut upsert/merge.

Pentingnya UPSERT - dari sqlservercentral.com:

Untuk setiap pembaruan dalam kasus yang disebutkan di atas, kami menghapus satu pembacaan tambahan dari tabel jika kami menggunakan UPSERT alih-alih EXISTS. Sayangnya untuk Sisipan, metodeUPSERT dan IF EXISTS menggunakan jumlah pembacaan yang sama pada tabel. Oleh karena itu, pemeriksaan keberadaan hanya boleh dilakukan dilakukan ketika ada alasan yang sangat sah untuk membenarkan I/O tambahan. Cara yang dioptimalkan untuk melakukan sesuatu adalah memastikan bahwa Anda hanya memiliki sedikit bacaan di DB.

Strategi terbaik adalah mencoba pembaruan. Jika tidak ada baris yang terpengaruh oleh pembaruan, masukkan. Di sebagian besar keadaan, baris sudah ada dan hanya satu I/O yang diperlukan.

Sunting :Silakan lihat jawaban ini dan posting blog tertaut untuk mempelajari tentang masalah dengan pola ini dan cara membuatnya bekerja dengan aman.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat Tabel dengan Kompresi di SQL Server (T-SQL)

  2. Cara mendapatkan hari pertama dan terakhir bulan sebelumnya (dengan stempel waktu) di SQL Server

  3. Masalah penyebaran laporan SSRS 2014

  4. Entity Framework Core 2.0:Cara mengonfigurasi kelas dasar abstrak sekali

  5. Cara menggunakan pernyataan IF/ELSE untuk memperbarui atau membuat entri node xml baru di Sql