Search This Blog

Triggers

Microsoft ® SQL Server ™ 2000 triggers adalah kelas khusus dari store procedure yang dibuat untuk mengeksekusi secara otomatis ketika sebuah statemen UPDATE, INSERT, atau DELETE terjadi terhadap tabel atau view. Triggers adalah tools yang kuat yang dapat digunakan untuk menjalankan aturan bisnis secara otomatis ketika ada terjadi perubahan data. Triggers dapat meningkatkan pemeriksaan integritas logika constraint SQL Server, default, dan aturan.

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: