Contoh Trigger Penjualan Pada SQL Server 2005
Buka Microsoft SQL Server 2005
Klik Button New Query Pada Menu Toolbar, kemudian ketikan script berikut :
– Jika database belum ada,maka ketik perintah “create database nama_database”–
– use dapat digunakan jika database sudah ada terlebih dahulu–
use penjualan
create table tb_penjualan (kode_brg int, nama_brg char(50), stock int)
create table tb_beli (kode_brg int, beli_brg int)
create table tb_jual (kode_brg int, jual_brg int)
insert into tb_penjualan values ('1','Gitar','50')
insert into tb_penjualan values ('2','Drum','10')
insert into tb_penjualan values ('3','Seruling','20')
insert into tb_penjualan values ('4','Gendang','5')
insert into tb_penjualan values ('5','Mixer','3')
select *from tb_penjualan
select *from tb_beli
select *from tb_jual
– Ini dapat digunakan jika terjadi kesalahan pada trigger atau terserah –
delete from tb_penjualan where kode_brg='1'
delete from tb_beli where kode_brg='1'
delete from tb_jual where kode_brg'1'
– Ini Diexecute setelah trigger sudah dibuat–
insert into tb_beli values ('1','30')
insert into tb_beli values ('2','20')
insert into tb_beli values ('3','60')
insert into tb_beli values ('4','10')
insert into tb_beli values ('5','17')
insert into tb_jual values ('1','10')
insert into tb_jual values ('2','20')
insert into tb_jual values ('3','30')
insert into tb_jual values ('4','7')
insert into tb_jual values ('5','10')
Ini listing trigger untuk tb_beli :
create trigger tr_penjualan] on tb_beli
after insert, update, delete
as
begin
set nocount on;
declare @kode int
declare @beli int
select @kode=kode_brg, @beli=sum(beli_brg) from tb_beli group by kode_brg
if @beli is not null
update tb_penjualan set stock=@beli+stock where @kode=kode_brg
end
go
Cara kerjanya :
:> Jika beli_brg[@beli] berisi data dengan type int, maka tb_penjualan dengan colume stock akan diupdate dengan perintah stock=@beli+stock,dimana stock merupakan harga awal dari tb_penjualan.
Ini listing trigger untuk tb_jual :
create trigger tr_jual on tb_jual
after insert, update, delete
as
begin
set nocount on;
declare @kode int
declare @jual int
select @kode=kode_brg, @jual=sum(jual_brg) from tb_jual group by kode_brg
if @jual is not null
update tb_penjualan set stock=stock-@jual where @kode=kode_brg
end
GO
Cara kerjanya :
:> Jika jual_brg[@jual] berisi data dengan type int, maka tb_penjualan dengan colume stock akan diupdate dengan perintah stock=stock-@jual,dimana stock merupakan harga awal dari tb_penjualan.