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

SQL Trigger Menyisipkan dari Beberapa tabel

Anda tidak mereferensikan tabel yang dimasukkan atau dihapus yang hanya tersedia di pemicu, jadi tentu saja Anda mengembalikan lebih banyak catatan yang Anda butuhkan dalam kueri Anda.

Saat pertama kali menulis pemicu, yang saya lakukan adalah membuat tabel temp bernama #inserted (dan/atau #deleted) dan mengisinya dengan beberapa catatan. Itu harus sesuai dengan desain tabel tempat pemicu akan diaktifkan. Penting untuk membuat tabel temp Anda memiliki beberapa catatan input yang mungkin memenuhi berbagai kriteria yang memengaruhi kueri Anda (jadi dalam kasus Anda, Anda ingin beberapa di mana jumlah kasus akan menjadi 0 dan beberapa di mana tidak misalnya) dan itu akan menjadi tipikal data yang dimasukkan ke dalam tabel atau init yang diperbarui. Pemicu server SQL beroperasi pada kumpulan data, jadi ini juga memastikan bahwa pemicu Anda dapat menangani beberapa penyisipan atau pembaruan catatan dengan benar. Pemicu yang ditulis dengan benar akan memiliki kasus uji yang perlu Anda uji untuk memastikan semuanya terjadi dengan benar, tabel #inserted Anda harus menyertakan catatan yang memenuhi semua kasus uji tersebut.

Kemudian tulis kueri dalam transaksi (dan putar kembali saat Anda menguji) bergabung dengan #dimasukkan. Jika Anda melakukan penyisipan dengan pilih, hanya tulis bagian pilih sampai Anda melakukannya dengan benar, lalu tambahkan sisipan. Untuk pengujian, tulis pilihan dari tabel yang Anda masukkan untuk melihat data yang Anda sisipkan sebelum Anda melakukan rollback.

Setelah semuanya berfungsi, ubah referensi #inserted menjadi insert, hapus semua kode pengujian dan tentu saja rollback (mungkin seluruh transaksi tergantung pada apa yang Anda lakukan.) dan tambahkan drop dan buat bagian trigger dari kode. Sekarang Anda dapat menguji pemicu Anda sebagai pemicu, tetapi Anda berada dalam kondisi yang baik karena Anda tahu bahwa itu mungkin berhasil dari pengujian Anda sebelumnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari kueri di beberapa kolom tabel?

  2. SQL Server 2008 :Tidak Dapat Menyisipkan kolom baru di posisi tengah dan mengubah tipe data

  3. Beberapa Kunci Utama dengan asp .net mvc 3

  4. Strategi SQL yang baik untuk pencocokan fuzzy kemungkinan duplikat menggunakan SQL Server 2005

  5. SQL 2005 Dapatkah saya menggunakan kata kunci seperti dalam pernyataan kasus?