TRIGGER DELETE SEDERHANA
Trigger dalam SQL Server berguna untuk menjaga validitas data dari adanya redudansi, terutama bila data tersebut
merupakan data yang berelasi dengan tabel-tabel lain yang ada di database.
di sini gue punya dua buah tabel yaitu tabel mDataSiswa dan tabel trPembayaran, dimana tabel mDataSiswa adalah
tabel master Siswa dan trPembayaran adalah tabel pembayaran SPP dari tiap siswa, so pasti primary key (NIS) di tabel
mDataSiswa harus ada di tabel trPembayaran sebagai foreign key.
untuk membuat trigger bisa melalui Enterprise Manager atau SQL Query Analyzer
contoh pembuatan triggernya adalah sbb:
CREATE TRIGGER tr_deleteSiswa ON mDataSiswa
FOR DELETE AS
DECLARE @NIS_bayar VARCHAR(10)
SELECT @NIS_bayar = NIS FROM Deleted
DELETE FROM trPembayaran WHERE NIS_bayar=@NIS_bayar
Menjalankannya cukup dengan perintah SQL : DELETE FROM mDataSiswa Where NIS=’1023416′
maka dari perintah di atas selain menghapus data Siswa dengan NIS=1023416 di tabel mDataSiswa juga akan menghapus
pembayaran SPP di trPembayaran dengan NIS_bayar=1023416
Keterangan Script:
1. baris pertama menerangkan pembuatan trigger dengan nama tr_deleteSiswa di tabel mDataSiswa
2. baris kedua memerintahkan trigger untuk melakukan Delete (ada 2 perintah yaitu INSERT,DELETE,UPDATE)
3. baris ketiga yaitu deklarasi variable ciptaan sendiri yang baiknya di samakan dengan nama field di tabel asal
4. baris keempat memasukkan nilai NIS ke variable ciptaan yang asalnya dari tabel Deleted (tabel deleted sendiri adalah
logical tabel yang tercipta saat trigger di jalankan, selain itu ada tabel Inserted bila perintah yang di Pakai adalah
INSERT atau UPDATE)
5. baris kelima adalah penghapusan record di tabel trPembayaran berdasarkan Nilai NIS yang ada di tabel Deleted