Dokumen tersebut membahas tentang trigger di Microsoft SQL Server 2005. Trigger adalah program khusus yang secara otomatis dieksekusi ketika perintah insert, update, atau delete dijalankan pada tabel database. Terdapat dua jenis trigger yaitu DML trigger yang dieksekusi saat perintah DML dijalankan, dan DDL trigger yang dieksekusi saat perintah DDL dijalankan seperti create, alter, atau drop. Trigger bermanfaat untuk menjaga integritas data dan aturan bisnis di database.
2. Pengenalan TriggerPengenalan Trigger
Microsoft SQL Server 2005 menyediakan dua
mekanisme untuk menjaga integritas data,
yaitu: Constraint dan Trigger.
Trigger merupakan tipe khusus dari store
procedure yang secara otomatis akan
berpengaruh pada saat sebuah perintah
dijalankan.
www.rahmadani.net 2
Microsoft SQL Server 2005 menyediakan dua
mekanisme untuk menjaga integritas data,
yaitu: Constraint dan Trigger.
Trigger merupakan tipe khusus dari store
procedure yang secara otomatis akan
berpengaruh pada saat sebuah perintah
dijalankan.
3. Konsep Dasar TriggerKonsep Dasar Trigger
Trigger SQL yaitu pernyataan SQL atau
satu set pernyataan SQL yang disimpan
dalam database dan harus diaktifkan atau
dijalankan ketika suatu event terjadi pada
suatu tabel database.
Event ini berupa DML (INSERT, UPDATE
dan DELETE), DDL (CREATE, DROP,
ALTER) serta operasi database.
www.rahmadani.net 3
Trigger SQL yaitu pernyataan SQL atau
satu set pernyataan SQL yang disimpan
dalam database dan harus diaktifkan atau
dijalankan ketika suatu event terjadi pada
suatu tabel database.
Event ini berupa DML (INSERT, UPDATE
dan DELETE), DDL (CREATE, DROP,
ALTER) serta operasi database.
4. Trigger vs Store ProcedureTrigger vs Store Procedure
Terkadang Trigger disebut sebagai
bentuk khusus dari stored procedure.
Perbedaan antara Trigger dan Stored
Procedure:
1. Trigger diaktifkan atau dipanggil secara
implisit saat sebuah event yang terjadi di
tabel database
2. Stored Procedure harus dipanggil secara
eksplisit.
www.rahmadani.net 4
Terkadang Trigger disebut sebagai
bentuk khusus dari stored procedure.
Perbedaan antara Trigger dan Stored
Procedure:
1. Trigger diaktifkan atau dipanggil secara
implisit saat sebuah event yang terjadi di
tabel database
2. Stored Procedure harus dipanggil secara
eksplisit.
5. Manfaat Trigger Secara UmumManfaat Trigger Secara Umum
Meng-generate nilai kolom turunan (derived
column value)
Mencegah transaksi yang tidak valid
Mengerjakan otorisasi keamanan yg kompleks
Mengerjakan aturan bisnis (business rule) yang
kompleks
Menyediakan pencatatan event (event logging)
secara transparan
Menyediakan audit
www.rahmadani.net 5
Meng-generate nilai kolom turunan (derived
column value)
Mencegah transaksi yang tidak valid
Mengerjakan otorisasi keamanan yg kompleks
Mengerjakan aturan bisnis (business rule) yang
kompleks
Menyediakan pencatatan event (event logging)
secara transparan
Menyediakan audit
6. Manfaat Trigger Secara UmumManfaat Trigger Secara Umum (2)(2)
Mengerjakan referential integrity ke seluruh
node dalam sebuah basis data terdistribusi
Menjaga replikasi tabel secara synchronous
Mengumpulkan statistik dari pengaksesan tabel
Mempublikasikan informasi ketika ada database
event, user event, dan pernyataan SQL untuk
suatu aplikasi (yang berlangganan/subcsribe)
www.rahmadani.net 6
Mengerjakan referential integrity ke seluruh
node dalam sebuah basis data terdistribusi
Menjaga replikasi tabel secara synchronous
Mengumpulkan statistik dari pengaksesan tabel
Mempublikasikan informasi ketika ada database
event, user event, dan pernyataan SQL untuk
suatu aplikasi (yang berlangganan/subcsribe)
7. Kelebihan TriggerKelebihan Trigger
• Trigger menyediakan cara alternatif untuk
memeriksa integritas.
• Trigger bisa menangkap kesalahan dalam business
logic pada tingkat database.
• Trigger menyediakan cara alternatif untuk
menjalankan tugas-tugas yang dijadwalkan.
– tidak harus menunggu untuk menjalankan tugas-tugas
yang dijadwalkan.
– dapat menangani tugas-tugas sebelum atau setelah
perubahan yang dibuat untuk tabel database.
• Trigger sangat berguna untuk mengaudit
perubahan data dalam tabel database.
www.rahmadani.net 7
• Trigger menyediakan cara alternatif untuk
memeriksa integritas.
• Trigger bisa menangkap kesalahan dalam business
logic pada tingkat database.
• Trigger menyediakan cara alternatif untuk
menjalankan tugas-tugas yang dijadwalkan.
– tidak harus menunggu untuk menjalankan tugas-tugas
yang dijadwalkan.
– dapat menangani tugas-tugas sebelum atau setelah
perubahan yang dibuat untuk tabel database.
• Trigger sangat berguna untuk mengaudit
perubahan data dalam tabel database.
8. Kelemahan TriggerKelemahan Trigger
Trigger hanya bisa menyediakan validasi
tambahan tapi tidak dapat menggantikan semua
validasi.
Beberapa validasi sederhana dapat dilakukan di
level aplikasi.
Trigger mengeksekusi secara tak terlihat dari klien-
aplikasi yang terhubung ke database server
sehingga sulit untuk mencari tahu apa yang terjadi
di level database.
Trigger berjalan setiap update yang dibuat ke table
sehingga menambah beban kerja ke database dan
menyebabkan sistem berjalan lebih lambat.
www.rahmadani.net 8
Trigger hanya bisa menyediakan validasi
tambahan tapi tidak dapat menggantikan semua
validasi.
Beberapa validasi sederhana dapat dilakukan di
level aplikasi.
Trigger mengeksekusi secara tak terlihat dari klien-
aplikasi yang terhubung ke database server
sehingga sulit untuk mencari tahu apa yang terjadi
di level database.
Trigger berjalan setiap update yang dibuat ke table
sehingga menambah beban kerja ke database dan
menyebabkan sistem berjalan lebih lambat.
9. Bentuk Umum TriggerBentuk Umum Trigger
SQL Server memiliki dua tipe umum dari
Trigger, yaitu:
1. DML Trigger
2. DDL Trigger
www.rahmadani.net 9
SQL Server memiliki dua tipe umum dari
Trigger, yaitu:
1. DML Trigger
2. DDL Trigger
10. DML TriggerDML Trigger
DML Trigger adalah program yang akan
dipanggil pada saat perintah DML (Data
Manipulation Language) yang dijalankan pada
server database.
Perintah-perintah DML;
UPDATE, INSERT dan DELETE
www.rahmadani.net 10
DML Trigger adalah program yang akan
dipanggil pada saat perintah DML (Data
Manipulation Language) yang dijalankan pada
server database.
Perintah-perintah DML;
UPDATE, INSERT dan DELETE
11. Fungsi DML TriggerFungsi DML Trigger
1. Menjaga dari kesalahan operasi INSERT,
UPDATE dan DELETE dan menjaga dengan lebih
kompleks dari pada penggunaan constraint check.
2. Mengevaluasi keadaan dari tabel apakah sebelum
atau sesudah modifikasi data dan mengambil
tindakan pada perbedaaan tersebut.
3. Dapat menambah beberapa tipe Trigger yang
sama pada tabel INSERT, UPDATE atau DELETE
dengan statement modifikasi yang sama untuk
mendapatkan beberapa hasil yang berbeda.
www.rahmadani.net 11
1. Menjaga dari kesalahan operasi INSERT,
UPDATE dan DELETE dan menjaga dengan lebih
kompleks dari pada penggunaan constraint check.
2. Mengevaluasi keadaan dari tabel apakah sebelum
atau sesudah modifikasi data dan mengambil
tindakan pada perbedaaan tersebut.
3. Dapat menambah beberapa tipe Trigger yang
sama pada tabel INSERT, UPDATE atau DELETE
dengan statement modifikasi yang sama untuk
mendapatkan beberapa hasil yang berbeda.
12. JenisJenis--jenis DML Triggerjenis DML Trigger
Pada saat membuat Trigger di SQL Server
2005 terdapat dua pilihan Trigger yang
dapat digunakan;
1.Trigger INSTEAD OF
2.Trigger AFTER
www.rahmadani.net 12
Pada saat membuat Trigger di SQL Server
2005 terdapat dua pilihan Trigger yang
dapat digunakan;
1.Trigger INSTEAD OF
2.Trigger AFTER
13. 1. Trigger INSTEAD OF1. Trigger INSTEAD OF
Jenis Trigger ini dijalankan sebelum proses
Constraint, diletakkan pada aksi Trigger yaitu:
INSERT, UPDATE atau DELETE.
Juga dapat didefinisikan pada view atau tabel.
Masing-masing tabel hanya dapat memiliki
sebuah Trigger INSTEAD OF untuk masing-
masing aksi Trigger.
www.rahmadani.net 13
Jenis Trigger ini dijalankan sebelum proses
Constraint, diletakkan pada aksi Trigger yaitu:
INSERT, UPDATE atau DELETE.
Juga dapat didefinisikan pada view atau tabel.
Masing-masing tabel hanya dapat memiliki
sebuah Trigger INSTEAD OF untuk masing-
masing aksi Trigger.
14. 2. Trigger AFTER2. Trigger AFTER
Trigger ini akan dieksekusi sesudah
menjalankan perintah INSERT, UPDATE atau
DELETE.
Trigger AFTER hanya dapat didefinisikan pada
Tabel. Sebuah tabel dapat memiliki beberapa
Trigger AFTER untuk masing-masing aksi
Trigger.
www.rahmadani.net 14
Trigger ini akan dieksekusi sesudah
menjalankan perintah INSERT, UPDATE atau
DELETE.
Trigger AFTER hanya dapat didefinisikan pada
Tabel. Sebuah tabel dapat memiliki beberapa
Trigger AFTER untuk masing-masing aksi
Trigger.
15. DDL TriggerDDL Trigger
DDL Trigger adalah fasilitas yang baru pada
SQL Server 2005. Trigger ini akan dipanggil
pada saat perintah DDL (Data Definition
Language) dijalankan pada server atau
database.
Perintah DDL;
CREATE, ALTER dan DROP
www.rahmadani.net 15
DDL Trigger adalah fasilitas yang baru pada
SQL Server 2005. Trigger ini akan dipanggil
pada saat perintah DDL (Data Definition
Language) dijalankan pada server atau
database.
Perintah DDL;
CREATE, ALTER dan DROP
16. Fungsi DDL TriggerFungsi DDL Trigger
1. Mencegah terjadinya perubahan pada
skema database.
2. Menerima rekasi pada saat terjadi
perubahan skema dalam database.
3. Untuk merekam perubahan kejadian
dalam skema database.
www.rahmadani.net 16
1. Mencegah terjadinya perubahan pada
skema database.
2. Menerima rekasi pada saat terjadi
perubahan skema dalam database.
3. Untuk merekam perubahan kejadian
dalam skema database.
17. Fungsi Khusus DDL TriggerFungsi Khusus DDL Trigger
Ada dua jangkauan kerja DDL Trigger yaitu pada
Server dan Database.
1. Trigger yang diletakkan pada Server seperti,
CREATE Database, ALTER Database, DROP
Database, CREATE Login, ALTER Login, DROP
Login dan lainnya.
2. Trigger yang diletakkan pada Database yaitu;
CREATE Table, ALTER Table, DROP Table,
CREATE Procedure, ALTER Procedure, DROP
Procedure dan lainnya.
www.rahmadani.net 17
Ada dua jangkauan kerja DDL Trigger yaitu pada
Server dan Database.
1. Trigger yang diletakkan pada Server seperti,
CREATE Database, ALTER Database, DROP
Database, CREATE Login, ALTER Login, DROP
Login dan lainnya.
2. Trigger yang diletakkan pada Database yaitu;
CREATE Table, ALTER Table, DROP Table,
CREATE Procedure, ALTER Procedure, DROP
Procedure dan lainnya.
19. Syntax Umum TriggerSyntax Umum Trigger
CREATE TRIGGER <nama_trigger> ON
<nama_table>|<nama_view> FOR |
AFTER | INSTEAD OF [INSERT]
[UPDATE] [DELETE]
AS
T-SQL /SQL STATEMENT
www.rahmadani.net 19
CREATE TRIGGER <nama_trigger> ON
<nama_table>|<nama_view> FOR |
AFTER | INSTEAD OF [INSERT]
[UPDATE] [DELETE]
AS
T-SQL /SQL STATEMENT
20. Syntax; ALTER TriggerSyntax; ALTER Trigger
ALTER TRIGGER <nama_trigger> ON
<nama_table>|<nama_view> FOR |
AFTER | INSTEAD OF [INSERT]
[UPDATE] [DELETE]
AS
T-SQL /SQL STATEMENT
www.rahmadani.net 20
ALTER TRIGGER <nama_trigger> ON
<nama_table>|<nama_view> FOR |
AFTER | INSTEAD OF [INSERT]
[UPDATE] [DELETE]
AS
T-SQL /SQL STATEMENT
21. Syntax; Hapus TriggerSyntax; Hapus Trigger
DROP TRIGGER <nama_trigger>
www.rahmadani.net 21
DROP TRIGGER <nama_trigger>