3. Trigger ( contoh, trigger Insert, Delete, Update)
Pada mulanya di buat tabel berikut
Lalu isikan data berikut
Kemudian kita buat tabel penjualan
barang (masing-masing item barang berbeda tabel). Contoh dibawah adalah mebuat
tabel penjualan Baju :
Biarkan
tabel penjualan baju tersebut di atas kosong.
Selanjutnya buat sebuah Trigger,
dimana apabila tabel penjualan diisi dengan data penjualan, maka total
penjualan baju (kolom : Terjual) akan muncul di tabel barang (kolom :
Total_Penjualan).
CREATE
TRIGGER [TotalPenjualan_Baju]
ON [dbo].[Table_penjualan]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
ON [dbo].[Table_penjualan]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@kode int
DECLARE @jual int
DECLARE @jual int
SELECT @kode
= kode_barang, @jual = sum(terjual) FROM Table_penjualan_baju Group by
Kode_barang
if @jual is
not null
UPDATE Table_barang SET Total_penjualan = @jual WHERE kode_barang = @kode
END
UPDATE Table_barang SET Total_penjualan = @jual WHERE kode_barang = @kode
END
Disini kita akan membuat sebuah Trigger
dengan nama ‘TotalPenjualan_Baju’ di tabel Table_penjualan. Kita buat 2
buah variabel (@kode dan @jual) dimana @kode adalah nilai kolom kode_barang
hasil dari query :
SELECT @kode
= kode_barang, @jual = sum(terjual) FROM Table_penjualan Group by Kode_barang
dan variabel
@jual, nilainya merupakan penjumlahan (sum)
dari kolom ‘terjual’ pada query di atas.
Apabila
variabel @jual memiliki nilai (is not null), maka akan dijalankan query
berikutnya, yakni :
UPDATE
Table_barang SET Total_penjualan = @jual WHERE kode_barang = @kode.
a. Apabila
di tabel Table_penjualan diisi data
maka kolom
‘Total_penjualan’ di tabel ‘Table_barang’ pun akan terisi.
b. Apabila
di tabel Table_penjualan dilakukan perubahan / update data (misal
tadinya data di kolom ‘terjual’ adalah 5, kemudian dirubah menjadi 200)
maka kolom
‘Total_penjualan’ di tabel ‘Table_barang’ pun akan terupdate.
c. Apabila
di tabel ‘Table_penjualan dilakukan penambahan / insert data baru, misal
maka kolom
‘Total_penjualan’ di tabel ‘Table_barang’ pun akan terupdate berupa hasil
penjumlahan dari data-data tersebut.
Untuk data barang lain (Celana dan
Kaos), kita perlu membuat tabel khusus buat masing-masing barang tersebut
berikut dengan Trigger-nya.
Tidak ada komentar:
Posting Komentar