Memahami Triggers MS SQL Server
Trigger dalam Microsoft SQL Server adalah objek database yang secara otomatis dijalankan atau "dipicu" sebagai respons terhadap peristiwa tertentu pada tabel atau tampilan. Trigger biasanya digunakan untuk memastikan integritas data, mencatat perubahan, atau menjalankan logika bisnis khusus.
Berikut adalah hal-hal penting untuk memahami trigger di MS SQL Server:
Jenis Trigger
AFTER Trigger
Dipicu setelah operasi INSERT, UPDATE, atau DELETE selesai.
Contoh: Memvalidasi data setelah perubahan.INSTEAD OF Trigger
Dipicu sebagai pengganti operasi INSERT, UPDATE, atau DELETE.
Contoh: Menggantikan operasi langsung pada tabel dengan logika kustom.DDL Trigger
Digunakan untuk menangkap peristiwa Data Definition Language (DDL), seperti CREATE, ALTER, atau DROP.
Contoh: Memantau perubahan struktur database.LOGON Trigger
Dipicu saat pengguna mencoba masuk ke server SQL.
Contoh: Mencegah login dari IP yang tidak diizinkan.
Struktur Dasar Trigger
Berikut adalah contoh pembuatan trigger sederhana untuk tabel bernama Orders
:
CREATE TRIGGER trg_AfterInsert
ON Orders
AFTER INSERT
AS
BEGIN
PRINT 'Record Inserted'
INSERT INTO AuditLog (OrderID, ActionDate, Action)
SELECT OrderID, GETDATE(), 'Insert'
FROM inserted
END
Penjelasan:
AFTER INSERT
: Trigger akan dipanggil setelah data diinsert.inserted
: Pseudo table yang berisi data yang baru saja ditambahkan.- AuditLog: Contoh tabel lain untuk mencatat log perubahan.
Pseudo Tables
INSERTED
: Berisi data baru yang dimasukkan.DELETED
: Berisi data lama yang dihapus atau diperbarui.
Contoh penggunaan dalam UPDATE Trigger:
CREATE TRIGGER trg_AfterUpdate
ON Orders
AFTER UPDATE
AS
BEGIN
-- Log data perubahan
INSERT INTO AuditLog (OrderID, OldValue, NewValue, ActionDate)
SELECT d.OrderID, d.OrderAmount, i.OrderAmount, GETDATE()
FROM deleted d
INNER JOIN inserted i ON d.OrderID = i.OrderID
END
Keuntungan Menggunakan Trigger
- Otomatis: Tidak memerlukan pemanggilan manual.
- Konsistensi Data: Memastikan validasi atau logika tertentu dijalankan setiap perubahan data.
- Audit Trail: Membantu mencatat setiap perubahan pada data.
Hal yang Perlu Diwaspadai
- Performa: Trigger dapat memperlambat operasi jika terlalu kompleks.
- Ketergantungan: Logika dalam trigger dapat membuat debugging menjadi sulit.
- Recursive Trigger: Aktifkan dengan hati-hati karena bisa menyebabkan loop tak terbatas.
Comments
Post a Comment