SQL E Book for SMK

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