Achmad Bisri, S.
Kom
BAB – 9
Trigger
SQL Server 2005
Microsoft SQL Server 2005 menyediakan dua mekanisme utama untuk menjaga
integritas data yaitu : Constraint dan Trigger. Trigger merupakan tipe khusus dari
stored procedure yang secara otomatis akan berpengaruh pada saat sebuah
perintah dijalankan. SQL Server memiliki dua tipe umum dari trigger yaitu : DML
Trigger dan DDL Trigger.
I. DML Trigger
Adalah program yang akan dipanggil pada saat perintah DML dijalan pada
server database. Perintah DML yaitu UPDATE, INSERT, dan DELETE.
DML Trigger digunakan untuk :
a. Menjaga dari kesalahan operasi INSERT, UPDATE, dan DELETE, dan
menjaga dengan lebih kompleks dari pada menggunakan constraint
check.
b. Mengevaluasi keadaan dari tabel apakah sebelum atau sesudah
modifikasi data, dan mengambil tindakan dari pada perbedaan
tersebut.
c. Dapat menambah beberapa tipe trigger yang sama pada tabel
(INSERT, UPDATE, atau DELETE) dengan statement yang sama untuk
mendapatkan beberapa hasil yang berbeda.
SQL Server 2005 menyediakan dua pilihan saat mendesain Trigger DML :
a. Trigger INSTEAD OF
Dijalankan sebelum proses constraint, diletakan pada aksi trigger
yaitu : INSERT, UPDATE, atau DELETE. Juga dapat didefinisikan pada
view atau tabel. Masing-masing tabel hanya dapat memiliki sebuah
trigger INSTEAD OF untuk masing-masing aksi trigger.
Membuat Trigger INSTEAD OF
Pilih salah satu Database (contoh)
Pilih salah satu Tabel (item)
Klik kanan pada Triggers
Klik New Trigger
Ketikan perintah sebagai berikut :
BAB 9 - Trigger SQL Server 2005 Hal - 1
Achmad Bisri, [Link]
Klik tombol Execute untuk menyimpan trigger
Ketikan perintah berikut untuk menjalankan aksi trigger
Hasil dari execute diatas memeberikan informasi bahwa
item tidak dapat dihapus karena jumlah item belu kosong
Jika jumlah item 0, maka item berhasil dihapus
BAB 9 - Trigger SQL Server 2005 Hal - 2
Achmad Bisri, [Link]
b. Trigger AFTER
Akan dieksekusi sesudah menjalankan perintah INSERT, UPDATE,
atau DELETE. Trigger AFTER hanya dapat didefinisikan pada tabel.
Sebuah tabel dapat memiliki beberapa trigger AFTER untuk masing-
masing aksi trigger.
Membuat Trigger DML AFTER
Pilih salah satu Database (contoh)
Pilih salah satu Tabel (item)
Tambahkan sebuah field pada tabel item dengan nama
MODIFIKASIDATA dan tipe data datetime. Field ini berfungsi
untuk mencatat terakhir kali melakukan modifikasi pada
record tertentu agar dapat menyimpan tanggal dan waktu
modifikasi secara otomatis saat melakukan update data.
Setelah selesai klik kanan pada Triggers
Klik New Trigger
Ketikan perintah sebagai berikut :
BAB 9 - Trigger SQL Server 2005 Hal - 3
Achmad Bisri, [Link]
Klik tombol Execute untuk menyimpan trigger
Ketikan perintah berikut untuk menjalankan aksi trigger
Terlihat perubahan tanggal dan waktu secara otomatis pada
field modifikasidata
BAB 9 - Trigger SQL Server 2005 Hal - 4
Achmad Bisri, [Link]
II. DDL Trigger
Adalah fasilitas baru pada SQL Server 2005. Trigger ini akan dipanggil pada
saat perintah DDL dijalankan pada server atau database. Perintah DDL yaitu
CREATE, ALTER, dan DROP.
DDL Trigger merupakan trigger spesial yang beraksi apabila perintah DDL
dijalankan. Trigger ini dapat digunakan untuk melakukan tugas
administrative pada database seperti auditing dan pengaturan operasi
database.
DDL Trigger tidak akan bereaksi pada perintah UPDATE, INSERT, atau
DELETE pada tabel atau view. DDL Trigger akan bereaksi pada perintah DDL
yaitu : CREATE, ALTER, dan DROP.
Pada DDL Trigger tidak dapat menggunakan INSTEAD OF seperti pada DML
Trigger.
DDL Trigger dapat digunakan untuk melakukan tugas sebagai berikut :
a. Mencegah terjadinya perubahan pada skema database
b. Menerima reaksi pada saat terjadi perubahan skema dalam database
c. Ingin merekam perubahan atau kejadian dalam skema database
Dua jangkau DDL Trigger yaitu SERVER dan DATABASE
Trigger yang dapat diletakan pada Server seperti CREATE DATABASE, ALTER
DATABASE, DROP DATABASE, CREATE LOGIN, AFTER LOGIN, DROP LOGIN
dan lain-lain.
Trigger yang dapat diletakan pada Database seperti CREATE TABLE, ALTER
TABLE, DROP TABLE, CREATE PROCEDURE, ALTER PROCEDURE, DROP
PROCEDURE dan lain-lain.
a. Membuat Trigger DDL pada Database
Langkah-langkahnya sebagai berikut :
Pilih salah satu Database (contoh)
Klik New Query
Ketikan perintah sebagai berikut :
BAB 9 - Trigger SQL Server 2005 Hal - 5
Achmad Bisri, [Link]
Klik Execute untuk menyimpan tigger
Untuk menjalankan, ketikan perintah sebagai berikut :
Terlihat dari hasil diatas, bahwa tabel tidak dapat dihapus.
Untuk menghapus tabel harus nonaktifkan terlebih dahulu
trigger yang ada pada tabel.
b. Membuat Trigger DDL pada Server
Langkah-langkah untuk membuat Trigger DDL pada Server adlah
sebagai berikut :
Pilih Server Objects
Pilih Triggers
Klik New Query
Untuk menjalankannya ketikan perintah berikut :
BAB 9 - Trigger SQL Server 2005 Hal - 6
Achmad Bisri, [Link]
c. Menonaktifkan Trigger
Untuk menonaktifkan trigger pada table, ikuti langkah berikut :
Klik pada tabel yang terdapat trigger
Kemudian klik kanan pada nama trigger dan pilih Disable, untuk
mengaktifkan kembali klik kanan dan pilih Enable
Untuk menonaktifkan trigger pada database harus menggunakan
perintah query, ikuti langkah berikut :
Klik New Query
Ketikan perintah sebagai berikut :
BAB 9 - Trigger SQL Server 2005 Hal - 7