Tabel dapat memiliki beberapa triggers. Statement CREATE TRIGGER dapat didefinisikan dengan FOR UPDATE, FOR INSERT, atau klausa FOR DELETE untuk menargetkan triggers untuk kelas tertentu dari modifikasi data. Ketika FOR UPDATE yang ditentukan, IF UPDATE (column_name) clause dapat digunakan untuk menargetkan triggers agar update mempengaruhi kolom tertentu.
Triggers dapat mengotomatisasi proses untuk sebuah perusahaan. Dalam sistem inventory, update triggers dapat mendeteksi bila tingkat persediaan mencapai titik pemesanan ulang dan menghasilkan perintah kepada pemasok secara otomatis. Dalam database proses di pabrik, triggers dapat mengirim e-mail atau memberi peringatan kepada operator ketika proses didefinisikan melebihi batas yang telah ditentukan.
Perintah triggers berikut menghasilkan e-mail setiap kali judul baru ditambahkan di pub database:
CREATE TRIGGER reminder
ON titles
FOR INSERT
AS
EXEC master..xp_sendmail 'MaryM',
Triggers berisi pernyataan Transact-SQL, sama seperti store procedure. Triggers, seperti store prosedur, mengembalikan hasil dari setiap pernyataan SELECT pada trigger. Memasukan perintah SELECT dalam triggers, kecuali pernyataan yang hanya mengisi parameter, tidak dianjurkan. Hal ini karena pengguna tidak mengharapkan untuk melihat hasil set kembali oleh UPDATE, INSERT, atau pernyataan DELETE.
Anda dapat menggunakan FOR clause untuk menentukan kapan triggers dijalankan:
- AFTER
Triggers dijalankan setelah pernyataan yang di-trigger itu selesai. Jika pernyataan gagal dengan error, seperti constraint violation atau kesalahan sintaks, trigger tidak dijalankan. Triggers AFTER tidak dapat ditentukan untuk view, hanya dapat ditentukan untuk tabel. Anda dapat menetapkan multiple AFTER triggers untuk setiap triggers action (INSERT, UPDATE, atau DELETE). Jika Anda memiliki multiple AFTER triggers untuk tabel, Anda dapat menggunakan sp_settriggerorder untuk mendefinisikan AFTER triggers yang pertama dan yang terakhir diljalankan. Semua AFTER trigger lainnya selain triggers pertama dan terakhir dijalankan dalam sebuah urutan yang terdefinisi tidak dapat Anda kendalikan.
AFTER adalah default di SQL Server 2000. Anda tidak bisa menentukan, AFTER atau INSTEAD OF triggers di SQL Server versi 7.0 atau sebelumnya, semua triggers dalam versi mereka AFTER dioperasikan sebagai triggers.
- INSTEAD OF
Triggers dijalankan pada eksekusi triggers. INSTEAD OF triggers dapat ditetapkan pada tabel dan view. Anda dapat menetapkan hanya satu INSTEAD OF triggers untuk setiap aksi triggers (INSERT, UPDATE, dan DELETE). INSTEAD OF triggers dapat digunakan untuk meningkatkan integritas pemeriksaan pada nilai-nilai data yang disertakan dalam statement INSERT.
No comments:
Post a Comment