Oleh :
3 Tipe trigger:
SQL Server hanya mensupport 6 tipe trigger. Hanya tipe AFTER dan INSTEAD OF
saja.
Kegunaan TRIGGER
• Mengupdate View
Membuat TRIGGER
AS
[sql_statement]
Sample Studi Kasus TRIGGER
Database KAMPUS memiliki table MHS, MK, dan NILAIMHS, dengan data sbb:
AS
DECLARE
@NPMMHS varchar(6),
@IPKMHS real;
ASCII(NILAIMHS.NilaiAbjad))*MK.SKS))/CONVERT(real,
sum(MK.SKS))
from NILAIMHS, MK
group by NILAIMHS.NPM
Lakukan untuk kasus UPDATE dan DELETE. 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
AS
[sql_statement]
Menghapus TRIGGER
Sample :
Anda bisa create <new>, edit, atau hapus Trigger dari Form Trigger Properties
rowcount as int;
FROM TRANSACTION T
IF rowcount = 1 THEN
New:AskingPrice = 2 * new:AcquitionsPrice;
ELSE
FROM ArtistWorkNew AW
GROUP BY AW.WorkID;
new:AskingPrice = avgNetPrice;
ELSE
new:AskingPrice = avgNetPrice;
END IF
ELSE
END IF;
END IF;
END;
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.
Tuliskan 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.