Pemicu DDL

Membangun dan Mengoptimalkan Trigger di SQL Server

Florin Angelescu

Instructor

Definisi dan properti

Pemicu DML

  • peristiwa terkait pernyataan DML INSERT, UPDATE, DELETE
  • digunakan dengan AFTER atau INSTEAD OF
  • terpasang pada tabel atau view
  • tabel khusus inserted dan deleted

Pemicu DDL

  • peristiwa terkait pernyataan DDL CREATE, ALTER, DROP
  • hanya digunakan dengan AFTER
  • terpasang pada database atau server
  • tidak ada tabel khusus
Membangun dan Mengoptimalkan Trigger di SQL Server

AFTER dan FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
Membangun dan Mengoptimalkan Trigger di SQL Server

AFTER dan FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

Membangun dan Mengoptimalkan Trigger di SQL Server

Prasyarat pemicu DDL

  • Objek target (server atau database)
  • Deskripsi pemicu
  • Peristiwa pemicu (DDL)
  • Nama pemicu
  • DATABASE
  • Tabel log perubahan definisi
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
Membangun dan Mengoptimalkan Trigger di SQL Server

Definisi pemicu DDL

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
Membangun dan Mengoptimalkan Trigger di SQL Server

Mencegah pemicu DML dijalankan

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('You are not allowed to remove tables from this database.', 16, 1); ROLLBACK;
Membangun dan Mengoptimalkan Trigger di SQL Server

Ayo berlatih!

Membangun dan Mengoptimalkan Trigger di SQL Server

Preparing Video For Download...