membuat trigger insert, update, delete sqlserver

Hallo blogger, kali ini saya akan menjelaskan tentang bagaimana cara membuat trigger baik insert, update, delete di sql server. trigger biasa digunakan untuk keperluan replikasi database di sql server maupun mysql. trigger sendiri merupakan sebuah prosedur yang dijalankan apabila sudah memenuhi persyaratan tertentu (after insert, after update, after delete). lansung saja kita masuk ke trigger yang pertama yaitu trigger statis.


Baca juga cara delete disable enable trigger sql server 2008

  1. Trigger statis adalah trigger yang sudah mempunyai values apabila persyaratan pada trigger terpenuhi maka trigger akan menjalankan prosedurnya dengan value yang tetap

    Create trigger triggerinsert on transaksi after insert as insert into [10.10.10.2].[toko].[dbo].[replika_transaksi] values ('100087',' 2015-04-13 04:10:19','P-003', 'K-001') ;

    dari trigger statis diatas apabila seseorang melakukan insert di tabel transaksi maka prosedur trigger menginputkan values ('100087','2015-04-13 04:10:19','P-003','K-001') ke tabel replika_transaksi
  2. kemudian yang kedua adalah trigger insert dinamis

    C
    reate trigger namatrigger on namatabel after insert as insert into [ip_teman].[database].[dbo].[nama_tabel] (field1,field2,field3,field4) select field1,field2,field3,field4 from inserted;

    dari trigger diatas maka apabila seseorang melakukan insert di tabel tertentu maka apa yang di inputkan ke tabel tersebut pula yang akan masuk ke tabel replikanya
  3. trigger update dinamis

    Create trigger namatrigger on nama_tabel after update as update 
    [ip_teman].[database].[dbo].[nama_tabel] set field2 = (select field2 from inserted), field3 = (select field3 from inserted), field4 = (select field4 from inserted) where field1 = (select field1 from inserted);

    trigger diatas melakukan prosedure update ke tabel replikanya setelah tabel master dilakukan update
  4. trigger delete dinamis

    Create trigger namatrigger on nama_tabel after delete as delete from [ip_teman].[database].[dbo].[nama_tabel] where field1 = (select field1 from deleted);

    trigger diatas melakukan prosedure delete ke tabel replikanya setelah tabel master dilakukan delete

Baca juga mengatasi error ansi warnings dan ansi nulis


cukup sampai disini postingan saya kali ini, apabila artikel ini bermanfaat dan ada yang ingin ditanyakan silahkan masukkan ke kolom komentar :)
terima kasih atas kunjunganya :)

Share this

Related Posts

Previous
Next Post »

6 komentar

komentar
25 September 2015 pukul 10.12 delete

jika case nya seperti ini trigger nya giamna ya?

Case : jika update di table A maka di table A Replika nya ke insert apa yang di update di table A. (jadi row nya bertambah)

Trigernya seperti apa ya? saya coba buat seperti ini :

Create trigger namatrigger4 on table asli after update as insert into table_copy dst...

namun tidak terjadi apa2?

Reply
avatar
26 September 2015 pukul 16.03 delete Komentar ini telah dihapus oleh pengarang.
avatar
26 September 2015 pukul 16.06 delete

Terima kasih atas kunjunganya
untuk jawabanya kurang lebih coba
Create trigger namatrigger4 on table asli after update as insert into table_copy ........ where id = select from inserted
semoga berhasil :)

Reply
avatar
12 Oktober 2015 pukul 14.50 delete

mau nanya mas, kalau saya buat trigger delete di tabel transaksi, fungsinya jika ada pembatalan barang di tabel transaksi, tabel stok barang kembali seperti semula.
tapi setiap akhir penjualan tabel transaksi kan dikosongkan lagi, tabel stok barang jadi ikutan balik lagi. gimana ngakalin trigger deletenya biar hanya aktif pada saat pembatalan barang saja?

Reply
avatar
29 Oktober 2015 pukul 08.20 delete

Terima kasih atas kunjunganya mungkin anda bisa menggunakan / menyisipkan field sebagai flag di table database anda
jika barang dibatalkan update flag menjadi 1 --> trigger after update where flag = 1 aktif
jika tidak update flag menjadi 0 --> trigger after update where flag = 0 aktif
semoga membantu :)

Reply
avatar
5 Oktober 2016 pukul 17.29 delete

gan mau tanya pengen bikin triger before insert,. jadi supaya tidak terjadi double transaksi gan contoh tabel barang dan penjualan

Reply
avatar