Apa perbedaan antara FOR
dan AFTER
pemicu?
Apa perbedaan antara FOR
dan AFTER
pemicu?
Jawaban:
Tidak ada bedanya, mereka melakukan hal yang sama.
CREATE TRIGGER trgTable on dbo.Table FOR INSERT,UPDATE,DELETE
Sama dengan
CREATE TRIGGER trgTable on dbo.Table AFTER INSERT,UPDATE,DELETE
Sebuah INSTEAD OF
pemicu berbeda, dan kebakaran sebelum dan bukannya insert dan dapat digunakan pada pandangan, untuk memasukkan nilai-nilai yang sesuai ke tabel yang mendasari.
@ Ben benar sekali.
Berikut adalah artikel MSDN Menjelajahi Pemicu SQL Server
Paragraf dari artikel:
Sintaks tersebut juga dapat diterima di versi SQL Server yang lebih lama. Namun, sekarang ada dua jenis pemicu di SQL Server 2000, saya lebih suka menyebut pemicu FOR sebagai pemicu SETELAH. Jadi, untuk sisa artikel ini saya akan merujuk pada pemicu SETELAH atau BUKAN.
Seperti pemicu AFTER yang Anda lihat sebelumnya, pemicu ini mencegah perubahan dibuat ke bidang nama belakang. Namun, ini menerapkan aturan bisnis ini secara berbeda dari contoh sebelumnya. Karena pemicu BUKAN AKAN diaktifkan di tempat pernyataan UPDATE, pemicu BUKAN DARI kemudian mengevaluasi apakah uji aturan bisnis berhasil atau tidak. Jika uji aturan bisnis lulus, agar pembaruan terjadi, pemicu BUKAN harus secara eksplisit memanggil pernyataan UPDATE lagi.
SETELAH menentukan bahwa pemicu DML diaktifkan hanya ketika semua operasi yang ditentukan dalam pernyataan SQL pemicu telah berhasil dijalankan. Semua tindakan kaskade referensial dan pemeriksaan batasan juga harus berhasil sebelum pemicu ini diaktifkan. SETELAH adalah default ketika FOR adalah satu-satunya kata kunci yang ditentukan.
Pemicu AFTER tidak dapat ditentukan pada tampilan.
INSTEAD OF Menentukan bahwa pemicu DML dijalankan sebagai ganti pemicu pernyataan SQL, oleh karena itu, menimpa tindakan dari pernyataan pemicu. INSTEAD OF tidak dapat ditentukan untuk DDL atau pemicu logon.
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql