hay gays...
kali ini saya bakalan kasih coding atau pengkodeann tentang membuat trigger update,insert,delete dengan sql server 2008
berikut coding nyaa
create
database INDOMARET_SKIP
use
INDOMARET_SKIP
create
table barang(
namabarang varchar(50) not null,
stockbarang
int null
default
0,
constraint
pk_barang primary key (namabarang)
)
go
insert
into barang values('NASTAR',100);
insert
into barang values('VASELINE',200);
insert
into barang values('AQUA',300);
insert
into barang values('TISSU',400);
insert
into barang values('DAIA',500);
create
table pembelian(
idpembelian
varchar(20) not null,
namabarang varchar(50) null,
jumlahbeli int null,
constraint
pk_pembelian primary key
(idpembelian)
)
go
create
index relation_fk on
pembelian (namabarang)
go
create
trigger tambahstockbarang on pembelian
for
insert
as
update
b set b.stockbarang=b.stockbarang+i.jumlahbeli
from
barang b join inserted i on b.namabarang=i.namabarang
insert
into pembelian values('a01','NASTAR',22);
insert
into pembelian values('a02','VASELINE',23);
insert
into pembelian values('a03','AQUA',24);
insert
into pembelian values('a04','TISSU',25);
insert
into pembelian values('a05','DAIA',26);
select*from barang
SELECT*FROM PEMBELIAN
create table penjualan (
nofaktur int not null,
namabarang varchar (50) null,
jumlahjual int
null,
constraint
pk_penjualan primary key
(nofaktur)
)
go
create index relation_fk on
penjualan (namabarang)
go
create trigger kurangistockbarang on
penjualan
for insert
as
update b set b.stockbarang=b.stockbarang-d.jumlahjual
from barang b join inserted d on b.namabarang=d.namabarang
insert into penjualan values('1001','NASTAR',5);
insert
into penjualan values('1002','VASELINE',5);
insert
into penjualan values('1003','AQUA',5);
insert
into penjualan values('1004','TISSU',5);
insert
into penjualan values('1005','DAIA',5);
select*from PENJUALAN
create
trigger hapus_data_penjualan on penjualan after delete
as
update barang set barang.stockbarang=barang.stockbarang+deleted.jumlahjual from deleted
where barang.namabarang=deleted.namabarang
update
penjualan set jumlahjual=90
where
nofaktur='1001'
delete
from penjualan where
nofaktur='1003'
select*from penjualan
select*from barang
create
trigger ubah_data_penjualan on penjualan after update
as
update
barang set barang.stockbarang=(barang.stockbarang+deleted.jumlahjual)-inserted.jumlahjual
from deleted,inserted
where
barang.namabarang=deleted.namabarang
selamat mencoba yahh guys...
jika ada yang masih belum paham silakan coment guys.........
Terima Kasih Mbak, Sudah sangat membantu saya ..
BalasHapusSaya coba masih ada errornya ...
BalasHapusCoba cek cek di create tiggernya bg
HapusMashook pak ekooo
BalasHapusterimakasih sangad membantu gan
BalasHapusmisal saya punya stok 10 di tabel data stok master, kemudian saya input data stok masuk 10 di tabel data stok masuk, maka data di stok master akan bertambah menjadi 20, tapi apa bila saya edit atau delete jumlah di tabel data stok masuk, tidak mempengaruhi jumlah stok di data stok master, hasil ttp 20, itu trigerny seperti apa ya mbak supaya data stok masterny terupdate saat saya edit maupun delete
BalasHapusthankss
BalasHapuslebih bagus jika ada penjelasan per baris jadi tidak hanya memberikan saja tapi mengajari
BalasHapus