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

Perulangan di Pemicu?

Masalah pertama Anda adalah bahwa Anda tidak boleh mempertimbangkan perulangan melalui kumpulan catatan sebagai pilihan pertama. Ini hampir selalu merupakan pilihan yang salah seperti di sini. Masalah Anda berikutnya adalah pemicu memproses seluruh kumpulan catatan bukan satu per satu dan dari deskripsi Anda, saya yakin Anda menulisnya dengan asumsi itu akan memproses satu catatan pada satu waktu. Anda membutuhkan proses berbasis set.

Mungkin Anda memerlukan sesuatu seperti ini di pemicu Anda yang akan menyisipkan semua negara di sisipan yang belum ada di tabel negara (ini mengasumsikan country_Id adalah kolom identitas bilangan bulat):

Insert country (country_name)
select country_name 
from inserted i
where not exists 
  (select * from country c 
   where c.country_name = i.country_name)

Anda juga bisa menggunakan proc yang tersimpan sebagai ganti pemicu untuk menyisipkan ke tabel nyata dari tabel pementasan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pergi dengan driver SQL Server tidak dapat terhubung dengan sukses, login gagal

  2. Penggantian ISNUMERIC() yang efisien di SQL Server?

  3. Periksa Status Antrian Surat Database di SQL Server (T-SQL)

  4. Penghapusan Otomatis Transaksi yang Terlupakan di MS SQL Server

  5. Konversi varchar ke datetime di sql yang memiliki milidetik