Keinginan adalah kunci motivasi, tapi tekad dan komitmen itu pengejaran tanpa henti untuk sebuah tujuan yaitu komitmen menuju keunggulan yang akan memungkinkan Anda untuk mencapai keberhasilan yang Anda cari.

Translate

Senin, 02 Januari 2012

MEMBUAT TRIGGER DI MS. SQL SERVER 2000


Nama                      :  ESTI YULIANA
NIM                       :  SIR200938
Mata Kuliah            :  Database Server
Dosen                     :  Jatmiko Indrianto, S.Kom

MEMBUAT TRIGGER DI MS. SQL SERVER 2000

Pengertian Trigger :
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 dalam hal ini trigger bisa dimanfaatkan dalam membatasi login user dan sebagainya.  Kali ini kita akan membahas tentang bagaimana membuat trigger untuk syntax dasar insert, delete dan update. Untuk contoh, Buat table TBarang sebagai tabel master dan TStokAwal dan TPenjualan sebagai tabel transaksi.





Untuk memasukan syntax trigger, pada design view di SQL Server Enterprise Manager klik icon triggers









































Hapus template trigger sebelum memasukkan syntax.

Berikut syntax trigger untuk perintah dasar insert, update dan delete :
1.       Membuat trigger untuk insert
Kita akan coba membuat keterangan di tabel history pada saat kita melakukan perubahan pada tabel barang, kita buat dulu tabel history-nya :

Lalu kita buat trigger-nya di Tbarang :

create trigger inserthistory on [dbo].[TBarang]
for insert
as
insert into history (keterangan, waktu)
values ('Penambahan data pada tabel siswa', getdate ())

Kita cek dengan memasukkan data baru , lalu kita cek di tabel history berikut hasilnya :




Anda juga bisa menambahkan keterangan waktu saat data di hapus
create trigger inserthistory1 on [dbo].[TBarang]
for delete
as
insert into history (keterangan, waktu)
values ('Penghapusan data pada tabel siswa', getdate ())

        Dan untuk menambahkan keterangan pada waktu di update, syntax-nya adalah sebagai berikut :
create trigger trg_tambahsiswa on siswa for update as
insert into history(keterangan, tgl)
values (‘pengubahan data pada tabel siswa’,getdate())

2.       Membuat trigger untuk Mengedit
Trigger ini diperlukan dengan asumsi jika data pada TBarang berubah maka data yang berkaitan dengan TBarang juga ikut berubah. Berikut syntax-nya :
Create Trigger update1 on TBarang
For update
As
Update TStokAwal
Set TStokAwal. NmBarang = TBarang. NmBarang
From TBarang
Where TStokAwal.KdBarang =TBarang.KdBarang

Lalu kita cek, ternyata jika Nama barang pada Tbarang kita ubah di TstokAwal nama barangnya juga ikut berubah




Jika terjadi penjualan maka seharusnya stok awal juga berkurang, maka kita buat trigger-nya untuk mengaktifkan otomatisasinya, berikut syntax-nya :
CREATE Trigger updateStokP on TPenjualan
For update
As
Update TStokAwal
Set TStokAwal.Jumlah = TStokAwal. Jumlah - TPenjualan. JmlBarang
From TPenjualan
Where TPenjualan.KdBarang = TStokAwal.KdBarang

     Kita cek, apakah TstokAwal berkurang jumlahnya jika terjadi penjualan.
    Jumlah awal dari stok awal adalah sebagai berikut.


     Lalu kita masukkan transaksi di TPenjualan :


    Kita cek, ternyata di TStokAwal jumlahnya ikut berkurang mengikuti transaksi yang terjadi di TPenjualan.


3.       Membuat trigger untuk menghapus
Trigger ini difungsikan agar data yang sudah terhapus di TBarang otomatis terhapus juga di semua tabel yang memuat data berkenaan dengan TBarang.
Berikut Tabel Awal TBarang :

Kita masukkan syntax trigger-nya :
CREATE TRIGGER hapus ON TBarang
FOR DELETE
AS
delete TStokAwal
from TStokAwal, deleted
where TStokAwal.KdBarang = deleted.KdBarang

Untuk melihat apakah trigger berhasil menjalankan perintah coba hapus salah satu KdBarang, mis KdBarang : 01.

Kita lihat di tabel TStokAwal data KdBarang : 02 juga terhapus.


Demikian tutorial ini saya buat semoga bisa bermanfaat...

2 komentar:

Anonim mengatakan...

Luar biasa...thank bgt ilmunya :)

Unknown mengatakan...

kenapa sewaktu trigger delete tidak ada masuk kedalam keterangannya di dalam tabel history

Posting Komentar

Komentarnya ya...