Powered By Blogger

Selasa, 27 September 2011

Trigger


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;
DECLARE @kode 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
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: