TRIGGER Trigger adalah sekumpulan perintah Transact-SQL yang secara otomatis dijalankan apabila ada perintah INSERT, DELETE, atau UPDATE yang dijalankan di dalam tabel. Aplikasi utama dari Trigger adalah pembuatan metode validasi dan batasan akses ke dalam database, seperti misalnya rutin-rutin keamanan. Daripada memberikan kontrol untuk aplikasi, kita bisa memberikan kontrol untuk tabel itu sendiri melalui trigger sehingga penanganan database bisa jauh lebih aman. Adapun beberapa hal yang dapat dilakukan trigger di antaranya: Membuat log untuk mendaftarkan penggunaan tabel Mengupdate tabel-tabel lain apabila ada penambahan atau perubahan lain di dalam tabel yang sedang aktif. Berikut contoh pembuatan trigger dengan nama BarangBaru yang akan dieksekusi pada tabel tblBarang ketika terjadi proses penyimpanan record. Jika penyimpanan record baru sukses dilakukan pada tabel tblBarang, maka trigger tersebut akan menampilkan pesan konfirmasi “Data barang baru berhasil dimasukkan” Create trigger BarangBaru ON tblBarang FOR INSERT AS Print ‘Data barang baru berhasil di masukkan’ Berikut contoh pembuatan trigger dengan nama BarangUpdate dibuat untuk memberikan konfirmasi tiap kali ada data yang diubah di table tblBarang dengan pesan “Data barang berhasil diubah” Create trigger BarangUpdate ON tblBarang FOR UPDATE AS Print ‘Data barang baru berhasil di ubah !!!!!!!!’ Berikut contoh pembuatan trigger dengan nama BarangDelete dibuat untuk memberikan konfirmasi tiap kali ada data yang mengapus di table tblBarang dengan pesan “Data barang berhasil dihapus” Create trigger BarangDelete ON tblBarang FOR DELETE AS Print ‘Data barang baru berhasil di hapus !!!!!!!!’ Untuk melihat trigger dari suatu tabel pergunakan stored procedure sp_helptrigger NamaTabel, sedangkan untuk melihat isi script dari suatu trigger pergunakan stored procedure sp_helptext namaTrigger Contoh: USE dbAcuy GO IF EXISTS(SELECT Name FROM sysobjects WHERE Name = 'tblMahasiswa') BEGIN DROP TABLE tblMahasiswa END GO CREATE TABLE tblMahasiswa( Npm CHAR(10) PRIMARY KEY, Nama VARCHAR(50) DEFAULT NULL ) GO INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT GO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa tblMahasiswa VALUES('7006301051', VALUES('7006301052', VALUES('7006301053', VALUES('7006301054', VALUES('7006301055', VALUES('7006301056', VALUES('7006301057', VALUES('7006301058', VALUES('7006301059', VALUES('7006301060', SELECT * FROM tblMahasiswa GO IF EXISTS(SELECT Name FROM sysobjects WHERE Name = 'tblLog') BEGIN DROP TABLE tblLog END GO CREATE TABLE tblLog( IdRecord VARCHAR(10) , Descrp VARCHAR(50), Tgl DATETIME, Ket VARCHAR(20), Tabel VARCHAR(20) ) GO 'STEVANI SWEETENIA') 'THIA TRISANTIA') 'EKO SUPRIADI') 'IRFAN WARDHANA KUSUMA') 'TATI HARYATI') 'BONIX NOVELLY') 'ERLY LINGGA DPN') 'NINDY') 'RIKY GUNAWAN') 'M. ROHMAT WIGUNA') IF EXISTS(SELECT Name FROM sysobjects WHERE Name = 'tr_Mahasiswa_ins') BEGIN DROP TRIGGER tr_Mahasiswa_del END GO CREATE TRIGGER tr_Mahasiswa_del ON tblMahasiswa FOR DELETE AS DECLARE @IdRecord VARCHAR(10), @Desc VARCHAR(50), @Tgl DATETIME, @Ket VARCHAR(20), @Tabel VARCHAR(20) SELECT @IdRecord = Npm FROM DELETED SELECT @Desc = Nama FROM DELETED SET @Tgl = GETDATE() SET @Ket = 'DELETED' SET @Tabel = 'tblMahasiswa' INSERT INTO tblLog VALUES(@IdRecord, @Desc, @Tgl, @Ket, @Tabel) GO DELETE FROM tblMahasiswa WHERE NPM = '7006301052' GO