Upload
fuad-nasrudin
View
5
Download
0
Embed Size (px)
DESCRIPTION
Emboh iki Opo
Citation preview
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 100
BAB IX MENGENAL TRIGGER
Pokok Bahasan 1. Mengenal Trigger 2. Replikasi Baris dengan Trigger 3. Menampilkan Trigger
Pendahuluan
Salah satu keistimewaan Microsoft SQL Server 2000 adalah suatu mekanisme kontrol bernama database trigger. Trigger sebenarnya sama seperti halnya sekumpulan perintah Transact-SQL yang secara otomatis dijalankan apabila ada perintah INSERT, DELETE atau UPDATE yang ada di dalam tabel.
Yang utama dari trigger ini adalah pembuatan metode validasi dan batasan akses ke dalam suatu database. Dalam hal ini trigger berfungsi sebagai kontrol dalam suatu tabel sehingga pengamanan database bisa jauh lebih akurat dan aman.
1. Mengenal Trigger
Adapun beberapa aplikasi yang dapat dilakukan oleh trigger antara lain:
8 Membuat isi dari kolom yang diambil dari kolom lain.
8 Membuat validasi yang mencakup query dari beberapa tabel
8 Membuat suatu log untuk mendaftarkan penggunaan tabel
8 Memperbarui tabel-tabel lain apabila ada perubahan
Sebagai gambaran saya akan menjelaskan beberapa fungsi dan komponen trigger. Namun karena buku ini sifatnya hanya pengantar, penjelasan dan penerapan trigger tidak akan dibahas secara mendalam. Tetapi diharapkan dengan membaca bagian ini akan memberikan gambaran apabila Anda kelak akan memperdalam
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 101
Microsoft SQL khususnya yang berhubungan dengan Transact-SQL dan Trigger.
1.1. Membuat Trigger
Ada beberapa cara yang bisa Anda lakukan untuk membuat suatu trigger. Pertama melalui Enterprise Manager, dan kedua melalui Query Analyzer. Baik melalui Enterprise Manager maupun Query Analyzer sama saja, hanya lokasi penulisannya yang berbeda.
Sintak atau cara penulisan Trigger adalah sebagai berikut:
CREATE TRIGGER trigger_name ON {table | view} [WITH ENCRYPTION] {FOR | AFTER | INSTEAD OF} {[DELETE] [,] [INSERT] [,] [UPDATE]} [WITH APPEND] [NOT FOR REPLICATION] AS sql_statement [...n]
1.1.1. Membuat Trigger Melalui Enterprise Manager
Untuk membuat Trigger melalui Enterprise Manager prosedur yang harus Anda lakukan adalah sebagai berikut:
8 Jalankan Enterprise Manager
8 Buka database Anda, misalnya DataUmum
8 Kemudian buka tabel yang akan ditangani, misalnya Marketing. Disain lengkap dari tabel tersebut adalah seperti ditampilkan Gambar 9.1.
Setelah selesai membuat atau mendefinisikan tabel tersebut Anda simpan dan berinama Marketing2. Anda juga bisa mengisi atau memasukkan data ke dalam tabel tersebut sesuai kebutuhan. Kemudian sekarang buat trigger, caranya klik nama tabel Anda, misalnya Marketing
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 102
Gambar 9.1. Disain tabel Marketing
Gambar 9.2. Menu PopUp dan memilih Manage Trigger
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 103
8 Klik kanan di atas tabel Marketing2 sehingga akan tampil Menu Popup seperti Gambar 9.2. di atas
8 Klik All Tasks
8 Klik Manage Triggers. Setelah itu program akan menampilkan Trigger Properties seperti Gambar 9.3. berikut.
Gambar 9.3. Trigger Properties dari tabel Marketing2
Ketikkan Trigger berikut ke dalam kotak di lingkungan Trigger Properties.
CREATE TRIGGER Market2 on Marketing2 FOR INSERT AS PRINT A New Insert
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 104
Gambar 9.4. Membuat Trigger bernama Market2 dalam tabel Marketing2
1.1.2. Menghapus Trigger
Untuk menghapus Trigger yang sudah dibuat caranya sebagai berikut:
8 Klik kanan di atas tabel Marketing2 sehingga akan tampil Menu Popup
8 Klik All Tasks
8 Klik Manage Triggers.
8 Klik tombol drop-down dan pilih nama trigger yang akan di hapus, misalnya Market2
8 Klik tab Delete. Setelah itu program akan menampilkan seperti Gambar 9.5. berikut.
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 105
Gambar 9.5. Pernyataan apakah Trigger tersebut akan dihapus?
1.2. Membuat dan Menggunakan Trigger dari Query Analyzer
Sekarang kita akan mencoba membuat dan menggunakan Trigger melalui Query Analyzer. Untuk itu Anda harus masuk ke jendela Query Analyzer.
Sebagai contoh, saya akan menggunakan database sebagai sample yang sudah tersedia dalam manual SQL Server 2000. Database tersebut bernama PUBS. Database PUBS ini memiliki beberapa tabel yang bisa kita gunakan atau manipulasi untuk kepentingan yang sesuai.
Sebagai gambaran sintaks dari penulisan Trigger di jendela Query Analyzer adalah sebagai berikut:
CREATE TRIGGER nama_trigger ON { table | view } [ WITH ENCRYPTION ]
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 106
{ { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ] [ ...n ] | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] } ] sql_statement [ ...n ] } }
Selanjutnya marilah kita gunakan database tersebut. Kemudian Anda masuk ke jendela Query Analyzer ini Anda langsung ketikkan trigger berikut:
USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'reminder' AND type = 'TR') DROP TRIGGER reminder GO CREATE TRIGGER reminder ON titles FOR INSERT, UPDATE AS RAISERROR (50009, 16, 10) GO
Untuk menjalankan Transact-SQL yang Anda buat tersebut tekan tombol F5 atau klik tombol Execute.
2. Replikasi Baris dengan Trigger
Anda sekarang akan mengenal replikasi baris dengan trigger. Namun sebelumnya Anda harus membuat 2 buah tabel bernama Latihan01 dan Latihan02. Namun sebelumnya Anda harus membuat file
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 107
databasenya terlebih dahulu.
2.1. Membuat Tabel
Untuk itu buat database menggunakan Transact-SQL atau bisa juga melalui Enterprise Manager untuk jelasnya mengenai pembuatan database ini Anda baca kembali di bagian sebelumnya. Berikut adalah bahasa Transact-SQL untuk membuat tabel Latihan01 dan Latihan02.
Sebelum mengetikkan perintah di bawah ini Anda harus sudah join ke Server atau komputer yang dijadikan Server dan langsung menuju jendela Query Analyzer. Setelah itu Anda ketikkan perintah untuk membuat tabel tersebut.
Contoh membuat Tabel LATIHAN01
USE DATAUMUM GO CREATE TABLE Latihan01 ( Kode_barang Char(4), Nama_barang Char(30), Banyaknya Int, ) GO
Contoh membuat tabel LATIHAN02
USE DATAUMUM GO CREATE TABLE Latihan02 ( Kode_barang Char(4), Nama_barang Char(30), Banyaknya Int, ) GO
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 108
Gambar 9.6. Sukses membuat LATIHAN02 dalam database DATAUMUM
Setelah selesai membuat tabel tersebut selanjutnya Anda buka Replikasi baris dengan Trigger. Transact-SQL yang bisa Anda gunakan adalah sebagai berikut.
2.2. Menggunakan Perintah Insert
Sekarang Anda akan mempelajari bagaimana caranya membuat trigger dengan memanfaatkan perintah INSERT dalam tabel LATIHAN01. Nama triggernya adalah LATIH01. Untuk jelasnya berikut adalah perintahnya.
CREATE TRIGGER [Latih01] ON Latihan01 FOR INSERT AS INSERT INTO LATIHAN02 SELECT kode_barang,nama_barang,Banyaknya FROM sisipkan
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 109
Gambar 9.7. Menggunakan perintah INSERT untuk membuat trigger LATIH01 di atas
tabel LATIHAN01
Setelah Anda membuat Trigger tersebut selanjutnya simpan dan beri nama, misalnya LATIH01.
2.3. Menggunakan Perintah Delete
Sekarang coba Anda buat trigger berikutnya dengan memanfaatkan perintah DELETE. Script yang harus Anda ketikkan di jendela Query Analyzer adalah seperti di bawah ini.
CREATE TRIGGER [LATIH02] ON Latihan01 FOR DELETE AS DELETE FROM Latihan02 WHERE LATIHAN02.kode_barang IN (select Kode_barang from hapus)
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 110
Gambar 9.8. Menggunakan perintah DELETE untuk membuat trigger LATIH01 di atas
tabel LATIHAN01
Setelah selesai simpan seperti biasa dan beri nama LATIH02. Tujuannya agar apabila sewaktu-waktu Anda membutuhkan trigger tersebut bisa digunakan kembali.
2.4. Menggunakan Perintah Update
Perintah selanjutnya yang bisa Anda gunakan adalah UPDATE. Cara penggunaannya sama seperti yang lain yaitu melalui Query Analyzer. Script selengkapnya adalah sebagai berikut.
CREATE TRIGGER [LATIH01] ON Latihan01 FOR DELETE AS DELETE FROM Latihan02 WHERE LATIHAN02.kode_barang IN (select Kode_barang from hapus)
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 111
Gambar 9.9. Menggunakan perintah UPDATE untuk membuat trigger LATIH01 di atas
tabel LATIHAN01
2.5. Menjalankan Perintah Insert
Setelah Anda mengenal perintah INSERT, DELETE dan UPDATE sekarang kita akan coba menyisipkan atau memasukkan data ke dalam tabel yang sudah kita buat sebelumnya. Berikut ini adalah data-data yang akan dimasukkan ke dalam tabel LATIHAN02. Perintah yang digunakan untuk menyisipkan data tersebut adalah INSERT.
INSERT LATIHAN02 VALUES(001,'Komputer',30) INSERT LATIHAN02 VALUES(002,'Printer',40) INSERT LATIHAN02 VALUES(003,'Processor',50) INSERT LATIHAN02 VALUES(004,'Keyboard',60) INSERT LATIHAN02 VALUES(005,'Monitor',70) INSERT LATIHAN02 VALUES(006,'Mouse',80)
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 112
Gambar 9.10. Menggunakan perintah INSERT untuk memasukkan data ke dalam tabel
LATIHAN01.
2.6. Menjalankan Perintah Update
Sekarang coba Anda gunakan perintah UPDATE untuk tabel LATIHAN02. Dalam contoh ini Anda diminta memasukkan nilai 750 pada kolom BANYAKNYA baris ke 6. Perintah selengkapnya adalah sebagai berikut.
UPDATE Latihan02 SET Banyaknya=750 WHERE Kode_barang='6' SELECT * FROM Latihan01 SELECT * FROM Latihan02
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 113
Gambar 9.11. Menggunakan perintah UPDATE untuk mengganti data pada salah satu
field di atas tabel LATIHAN01
2.7. Menjalankan Perintah Delete
Perintah berikutnya yang akan Anda gunakan adalah DELETE. Di sini Anda akan menghapus baris ke 4 pada field KODE_BARANG. Perintah lengkapnya adalah sebagai berikut.
DELETE FROM Latihan02 WHERE kode_barang ='4' SELECT * FROM Latihan01 SELECT * FROM Latihan02
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 114
Gambar 9.12. Menggunakan perintah DELETE untuk menghapus salah satu record
yang ada di tabel LATIHAN01
2.8. Menampilkan Tabel
Perintah yang digunakan untuk menampilkan tabel melalui Query Analyzer adalah sebagai berikut:
USE DATAUMUM GO SELECT * FROM Latihan02 GO
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 115
Gambar 9.13. Menampilkan isi dari tabel LATIHAN01
3. Melihat Trigger dari Tabel
Anda dapat menampilkan trigger-trigger yang sudah dibuat melalui Query Analyzer. Perintah yang umum digunakan adalah sebagai berikut:
sp_helptrigger latihan02
Gambar 9.14. Menampilkan Trigger yang sudah dibuat pada tabel LATIHAN01
Microsoft SQL Server 2000 Bagi Pemula Mengenal Trigger
The Next Generation Database 116
4. Menyimpan Perintah
Trigger yang sudah dibuat bisa disimpan agar bisa digunakan kembali. Perintahnya sama seperti Anda menyimpan file, yaitu memilih Save As dan menuliskan nama filenya. File yang terbentuk akan mempunyai akhiran SQL.
Gambar 9.15. Menyimpan Trigger yang sudah dibuat