MEMBUAT TRIGGER MENGURANGI, MENAMBAH, DAN MENGHAPUS STOCK PADA SQL SERVER 2008 - Sri indri

Latest

Sedikit Lebih Beda, Lebih Baik Daripada Sedikit Lebih Baik

Pengikut

Rabu, 25 Januari 2017

MEMBUAT TRIGGER MENGURANGI, MENAMBAH, DAN MENGHAPUS STOCK PADA SQL SERVER 2008



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.........

8 komentar:

  1. Terima Kasih Mbak, Sudah sangat membantu saya ..

    BalasHapus
  2. Saya coba masih ada errornya ...

    BalasHapus
  3. terimakasih sangad membantu gan

    BalasHapus
  4. misal 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

    BalasHapus
  5. lebih bagus jika ada penjelasan per baris jadi tidak hanya memberikan saja tapi mengajari

    BalasHapus