Pendahuluan

Membangun dan Mengoptimalkan Trigger di SQL Server

Florin Angelescu

Instructor

Apa itu trigger?

  • Jenis khusus stored procedure
  • Dieksekusi saat ada event di server basis data

Cara kerja Trigger

Membangun dan Mengoptimalkan Trigger di SQL Server

Jenis trigger (berdasarkan perintah T-SQL)

  • Trigger Data Manipulation Language (DML)
    • Pernyataan INSERT, UPDATE, atau DELETE
  • Trigger Data Definition Language (DDL)
    • Pernyataan CREATE, ALTER, atau DROP
  • Trigger logon
    • Event LOGON
Membangun dan Mengoptimalkan Trigger di SQL Server

Jenis trigger (berdasarkan perilaku)

  • Trigger AFTER

    • Pernyataan asli dijalankan
    • Pernyataan tambahan dipicu
  • Contoh use case

    • Rebuild indeks setelah insert besar
    • Beri tahu admin saat data diperbarui
Membangun dan Mengoptimalkan Trigger di SQL Server

Jenis trigger (berdasarkan perilaku)

  • Trigger INSTEAD OF

    • Pernyataan asli dicegah dijalankan
    • Pernyataan pengganti dijalankan
  • Contoh use case

    • Cegah insert
    • Cegah update
    • Cegah delete
    • Cegah modifikasi objek
    • Beri tahu admin
Membangun dan Mengoptimalkan Trigger di SQL Server

Definisi trigger (dengan AFTER)

-- Buat trigger dengan nama yang deskriptif
CREATE TRIGGER ProductsTrigger

-- Trigger harus dilekatkan ke tabel ON Products
-- Jenis perilaku trigger AFTER INSERT
-- Awal alur kerja trigger AS
-- Aksi yang dijalankan oleh trigger PRINT ('An insert of data was made in the Products table.');
Membangun dan Mengoptimalkan Trigger di SQL Server

Definisi trigger (dengan INSTEAD OF)

-- Buat trigger dengan nama yang deskriptif
CREATE TRIGGER PreventDeleteFromOrders
-- Trigger harus dilekatkan ke tabel
ON Orders
-- Jenis perilaku trigger
INSTEAD OF DELETE
-- Awal alur kerja trigger
AS
-- Aksi yang dijalankan oleh trigger
PRINT ('You are not allowed to delete rows from the Orders table.');
Membangun dan Mengoptimalkan Trigger di SQL Server

AFTER vs. INSTEAD OF

CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Dipicu setelah 
-- event pemicu (UPDATE)
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Dipicu sebagai pengganti 
-- event pemicu (UPDATE)
INSTEAD OF UPDATE
AS
{trigger_actions_section};
Membangun dan Mengoptimalkan Trigger di SQL Server

Ayo berlatih!

Membangun dan Mengoptimalkan Trigger di SQL Server

Preparing Video For Download...