Jumat, 29 Januari 2010

Trigger SQL Server

Aplikasi utama dari trigger adalah pembuatan metode validasi dan batasan askes ke dalam database.
Perintah yang dapat dilakukan Ttrigger adalah :
• Membuat isi kolom yang di ambil dari kolom lain.
• Membuat mekanisme validasi yang mencakup query pada banyak table.
• Membuat log untuk mendaftarkan pengguna table.
• Meng-update table table lain apabila ada penambahan atau perubahan lain dalam table yang sedang aktif.

Komponen dari Trigger
• Perintah SQL untuk mengaktifkan trigger.Perintah INSERT,DELETE dan UPDATE bisa mengaktifkan trigger.Trigger yang sama bisa di aktifkan apabila ada lebih dari satu aksi yang terjadi,
• Aksi yang di jalankan oleh trigger.Trigger mrnjalankan blok PL/SQL.


Batasan Trigger
Dibawah ini adalah batasan dan pertimbangan di dalam menggunakan trigger :
• Trigger bisa menjalankan perintah yang terkandung dalam badan nya atau mengaktifka prosedur dan trigger lain untuk menjalankan tugas tertentu.
• Setiap perintah SET bisa ditentukan di dalam trigger.Perintah ini akan tetep aktif salama ekseksi.
• Kita tidak bisa membuat trigger untu view.Tetapi apabila view digunakan, trigger dari table dasar biasanya akn di aktifkan.

Membuat Trigger
Trigger bisa di buat dengan 2 cara yaitu :
1. Menggunakan Query Analizer
CREATE TRIGGER [TRIGGER NAME] ON [NAMA_TABLE]
FOR INSERT, UPDATE, DELETE
AS PERINTAH

Ket :

ON menujukan table atau sekema dimana trigger di buat.
FOR harus di ikuti oleh jenis perintah yang di jalankan.
AS memulai badan trigger dengan perintah yang akan dijalnkan.







2. Menggunakan Enterprise Manager
Dengan menguunakan Entrprise manager pembuatan trigger sangatlah mudah.Berikut ini cara membuat trigger menamilkan tulisan pada saat melakukan input :
o Klik kanan database yang ingin di buat trigger lalu pilih All Tasks lalu pilih Manage Triggers

Tabel Iserted dan Deleted

Apabila table dijalankan SQL server akan membut dua buah table sementara yang hanya muncul apabila trigger sedang dijalankan, table yang pertama adalah table inserted dan yang ke dua adalah deleted.
Apabila perintah INSERT ayau UPDATE di jalankan, record yang di buat atau diubah di copy ke dalam table inserted.Apabila perintah DELETE dijalankan, baris baris yang di hapus di copy ke dalam table deleted.

Membuat Replikasi Baris dengan Trigger

Dengan menggunakan table sementara dari trigger, kita bisa membuat mekanisme untuk melakukan replikasi cepat dari satu table ke table yamg lain nya.
Berikut ini contoh membuat tiga buah trigger ntuk replikasi atau menggunakan operasi dari table Tmhs ke dalam Tmhs2.

Replikasi Insert

Nama trigger : insertrep

Create Trigger insertrep on tmhs
For insert
As
Insert into Tmhs2
Select * from inserted

Replikasi Delete

Nama trigger : delrep

Create Trigger delrep on Tmhs
For Delete
As
Delete from tmhs2
Where tmhs2.nim in (select nim from deleted)





Replikasi Update

Nama trigger : uprep

Create Trigger uprep on Tmhs
For Udpate
As
Update tmhs2
Set Nama=(Select Nama from Inserted),
Alamat= (Select Alamat from Inserted)
Where Tmhs2.nim in (select nim from Inserted)

Klause Where juga digunakan untuk mengupdate record yang kode nya ditemukan pada table inserted saja.
Pada perintah replikasi pdate dan juga update bisa sangat dilarang untuk mengupdate primary key.

Tidak ada komentar:

Posting Komentar