Trigger
Trigger adalah objek di dalam database yang berasosiasi dengan suatu tabel, trigger akan aktif ketika tabel tersebut dikenai event (kejadian yang menimpa tabel, bisa berupa penambahan, perubahan, maupun penghapusan data) tertentu.
Konsep Trigger
Perintah T-SQL hanya dieksekusi ketika dibutuhkan, sama seperti Store Procedures tapi bagaimana jika kamu menginginkan sebuah perintah yang dieksekusi secara otomatis ketika kita mengeksekusi perintah lain atau melakukan aksi lain. Contohnya :
- Jika sebuah baris dihapus, maka baris itu secara otomatis akan disimpan sebagai arsip;
- Jika sebuah produk dipesan, maka stok produk itu berkurang sesuai dengan jumlah pesanan.
Latihan :
Buat Tabel log_products
Berikut ini query untuk membuat Tabel log_products:
CREATE TABLE log_products(
prod_id CHAR(5) NOT NULL,
status_prod VARCHAR(10) NOT NULL,
status_date DATETIME DEFAULT GETDATE());
Tambahkan Kolom Stock
Pada database sample_pbd, Tabel Products belum memiliki kolom Stock. Oleh sebab itu, kita perlu menambahkan kolom Stock terlebih dahulu. Berikut ini query untuk menambahkan kolom Stock:
ALTER TABLE products ADD Stock INT;

Latihan Soal :
Soal 3:
Buatlah sebuah trigger dengan nama simpan_orderitems, trigger aktif setelah menyimpan data pada Tabel Orderitems. Action => merubah stock pada Tabel Products (stok berkurang).
Jawaban:
CREATE TRIGGER simpan_orderitems
ON orderitems
AFTER INSERT
AS
BEGIN
DECLARE @id CHAR(5), @Qty INT
SELECT @id = prod_id, @Qty = quantity
FROM inserted
UPDATE products SET Stock = Stock - @Qty
WHERE prod_id = @id;
END;
Soal 4:
Buatlah sebuah trigger dengan nama hapus_orderitems, trigger aktif setelah menghapus data pada Tabel Orderitems. Action => mengubah stock pada Tabel Product (stock bertambah)
Jawaban:
CREATE TRIGGER hapus_orderitems
ON orderitems
AFTER DELETE
AS
BEGIN
DECLARE @id CHAR(5), @Qty INT
SELECT @id = prod_id, @Qty = quantity
FROM deleted
UPDATE products SET Stock = Stock + @Qty
WHERE prod_id = @id;
END;
0 komentar:
Posting Komentar