Server
Trigger adalah program yang dieksekusi oleh DBMS ketika suatu event terjadi. Trigger
diaplikasikan pada tabel atau view. Sebuah tabel atau view dapat memiliki lebih dari 1
trigger. Tetapi sebuah trigger hanya digunakan pada 1 tabel atau view. Trigger
dijalankan karena request insert, update, atau delete pada suatu tabel atau view.
3 Tipe trigger:
SQL Server hanya mensupport 6 tipe trigger. Hanya tipe AFTER dan INSTEAD OF saja.
Kegunaan TRIGGER
• Mengupdate View
Membuat TRIGGER
Klausa FOR memiliki default untuk klausa AFTER. Sql_statement merupakan Transact-
SQL, bisa ada definisi variable, query, control-of-flow (IF, ELSE, WHILE, BEGIN –
END).
AS
[sql_statement]
Database KAMPUS memiliki table MHS, MK, dan NILAIMHS, dengan data sbb:
Membuat TRIGGER untuk table NILAIMHS agar jika ada INSERT / UPDATE /
DELETE di table NILAIMHS, maka secara otomatis kolom IPK di table MHS
segera bisa terupdate oleh system database.
AS
DECLARE
@NPMMHS varchar(6),
@IPKMHS real;
ASCII(NILAIMHS.NilaiAbjad))*MK.SKS))/CONVERT(real,
sum(MK.SKS))
from NILAIMHS, MK
group by NILAIMHS.NPM
Membuat TRIGGER untuk table MK agar jika ada INSERT / UPDATE dengan SKS
tidak sesuai bisa dibatalkan, cara membatalkan dengan statement ROLLBACK
TRANSACTION.
AS
DECLARE
@SKSMK int;
IF (@SKSMK <= 0)
BEGIN
ROLLBACK TRANSACTION
END
Mengubah TRIGGER
[sql_statement]
Menghapus TRIGGER
Sample :
Anda bisa create <new>, edit, atau hapus Trigger dari Form Trigger Properties
Sample Trigger : Set Default value
DECLARE
rowcount as int;
IF rowcount = 1 THEN
New:AskingPrice = 2 * new:AcquitionsPrice;
ELSE
new:AskingPrice = avgNetPrice;
ELSE
new:AskingPrice = avgNetPrice;
END IF
ELSE
END IF;
END IF;
END;
Cara Membuat Trigger di SQl Server
Bagaimanakah cara membuat trigger di SQL SERVER ?
Pada contoh membuat trigger di sini anda harus mempunyai SQL Server terinstall di
computer anda lengkap dengan Enterprise Manager-nya.
Pada posting kali ini saya akan memberikan contoh membuat trigger pada SQL Server
2000.
Kasus-nya adalah sebagai berikut:
Tabel penjualan memiliki field-field Nomor_Penjualan, Tanggal_Penjualan,
Nama_Suplier, Bulan dan Tahun. Data yang dimasukkan dari aplikasi adalah data
Tanggal_Penjualan dan Nama_Pelanggan. Data Bulan dan Tahun akan diisi oleh trigger
berdasarkan data dari field Tanggal_Penjualan. Misalnya Tanggal penjualan adalah 20
Mei 2009, maka trigger pada table penjualan akan mengupdate data field Bulan dengan
angka 5 dan field tahun dengan angka 2009. Data field Nomor_Penjualan adalah
autoincrement sehingga tidak perlu diberi nilainya pada saat penambahna data.
Pada design view di SQL Server Enterprise Manager klik icon triggers.
SELECT
@NO_PENJUALAN=NOMOR_PENJUALAN,
@BULAN=MONTH(TANGGAL_PENJUALAN),
@TAHUN=YEAR(TANGGAL_PENJUALAN)
FROM INSERTED;
BEGIN
UPDATE PENJUALAN SET BULAN=@BULAN,TAHUN=@TAHUN
WHERE NOMOR_PENJUALAN=@NO_PENJUALAN;
END
Untuk memeriksa sintaks penulisan sudah benar atau belum klik tombol Check Syntax.
Jika penulisan sitak SQL masih salah akan muncul peringatan error. Klik tombol OK
untuk menyimpan trigger. Klik tombol Close untuk menutup Trigger Properties
Jalankan program SQL Query Analizer dan login ke SQL Server dengan privilages
setingkat user administrator
Aktifkan database di mana kita menyimpan tabel penjualan.
Tulisakn perintah berikut:
Tekan F5 pada keyboard untuk mengeksekusi perintah SQL yang baru saja kita tulis.
Hasilnya seperti pada gambar berikut:
Pada perintah sql di atas kita tidak menyertakan data bulan dan tahun, tetapi data feld
bulan dan tahun pada tabel penjualan mempunyai nilai 5 dan 2009 sesuai dengan
tanggal_penjualan.