Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE.
INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
Bentuk dasar perintahnya :
|
CREATE TRIGGER nama_trigger ON nama_tabel FOR INSERT, UPDATE, DELETE AS isi statement-statement Anda disini. GO |
Saya akan memberi contoh sederhana untuk mudah memahami bagaimana cara kerja trigger ini.
Misalkan kita punya data di table DaftarSiswa
| DaftarSiswa | |
|---|---|
| Kode | Status |
| 1001 | |
| 1002 | |
| 1003 | |
Di tabel yang lain kita juga punya tabel Daftar Nilai :
| DaftarNilai | |
|---|---|
| Kode | Nilai |
Daftar nilai ini belum ada isinya yang nantinya akan kita isi dengan perintah INSERT.
Kolom Status pada tabel DaftarSiswa akan kita isi dengan “Lulus” dan “Tidak Lulus” secara automatis saat kita melakukan INSERT dan UPDATE pada tabel DaftarNilai.
Cara membuat dan mengisi kedua tabel diatas :
CREATE TABLE daftarSiswa (kode char(4), status char(10))
CREATE TABLE daftarnilai (kode char(4), nilai float)
Pada tabel DaftarSiswa diisi dengan perintah berikut :
INSERT INTO daftarSiswa VALUES(‘1001′,”)
INSERT INTO daftarSiswa VALUES(‘1002′,”)
INSERT INTO daftarSiswa VALUES(‘1003′,”)
Setelah semuanya dijalankan di Query Analyzer, berikutnya kita akan membuat suatu trigger di tabel daftarNilai.
| CREATE TRIGGER tr_status
ON daftarnilai FOR INSERT, UPDATE AS DECLARE @kode char(4) DECLARE @nilai float SELECT @kode = kode, @nilai = nilai FROM daftarNilai IF @nilai >= 60 UPDATE daftarSiswa SET status = ‘Lulus’ WHERE kode=@kode ELSE UPDATE daftarSiswa SET status = ‘Tidak Lulus’ WHERE kode=@kode go
|
Untuk menganalisa lihat isi kedua tabel diatas dengan perintah
SELECT* FROM daftarSiswa
SELECT* FROM daftarNilai
Setelah Anda melihat hasilnya kemudian jalankan perintah dibawah ini :
INSERT INTO daftarNilai values(‘1001′,70)
INSERT INTO daftarNilai values(‘1002′,50)
INSERT INTO daftarNilai values(‘1003′,80)
Setelah dijalankan Anda bisa lihat kembali isi tabel daftarSiswa dan daftarNilai.
| DaftarSiswa | |
|---|---|
| Kode | Status |
| 1001 | Lulus |
| 1002 | Tidak Lulus |
| 1003 | Lulus |
| DaftarNilai | |
|---|---|
| Kode | Nilai |
| 1001 | 70 |
| 1002 | 50 |
| 1003 | 80 |
Disini terlihat saat kita melakukan perintah INSERT di tabel daftarNilai secara otomatis program trigger melakukan pengisian pada tabel daftarSiwa pada kolom “status”
Cukup sampai disini dulu penjelasan saya mengenai TRIGGER.
Artikel lainnya
- Dasar-Dasar SQL 1
- Dasar-Dasar SQL 2
- Dasar-Dasar SQL 3
- Dasar-Dasar SQL 4
- Konsep Himpunan Dalam SQL
- Instalasi MySQL
- Koneksi Delphi ke SQL Server
- Full Join dan Cross Join dalam SQL
- Query Dalam Query
- Perintah EXISTS dalam SQL
- Perbedaan Perintah UNION dan UNION ALL dalam SQL
- Cara Membuat Store Procedure di SQL Server
- Perintah LIKE dalam SQL
- Create Trigger dalam SQL
- Penggunaan Perintah CASE Dalam SQL
- INSERT…… Perintah Lanjutan SQL
Filed under: SQL, Tips & Tricks, Tutorial , select, SQL, Trigger





Komentar Terakhir