Sabtu, 08 September 2018

Pengertian Trigger dan Cara Membuat Trigger pada Microsoft SQL Server Express

Trigger adalah sebuah mekanisme kerja yang dipanggil ketika ada sebuah aksi yang terjadi pada sebuah tabel. Penamaan trigger tldak boleh melebihi 128 karakter. Aksi yang dikenali oleh trigger dapat berupa statement DML biasa seperti INSERT, UPDATE, dan DELETE atau statement DDL. Biasanya yang dieksekusi oleh trigger adalah Stored procedure atau batch.

MEMBUAT TRIGGER 

Untuk dapat menciptakan trigger, Anda dapat menggunakan perintah CREATE TRIGGER. Bentuk perintah tersebut adalah sebagai berikut: 
CREATE TRIGGER [nm_schema]nm_trigger
ON {nm_tabel I nm_view}
[WITH opsi_dmI_trigger[,. . .]]
{FORIAFTERIINSTEAD OF}{[INSERT][,][UPDATE][,][DELETE]}
[WITH APPEND]
{AS statement_sq| l EXTERNAL NAME nm_method}

Contoh penggunaan trigger adalah sebagai berikut:
USE contoh2;
GO
CREATE TRIGGER brg ON barang FOR INSERT, UPDATE
AS
DECLARE @kd_brgnya VARCHAR(1O);
DECLARE @hrg__buy MONEY;
DECLARE @hrg_sell MONEY;
SELECT @hrg_buy = hrg_beIi, @hrg_seI| = hrg_jua| FROM INSERTED;
IF @hrg_buy  @hrg_sell
BEGIN
RAISERROR(‘Harga beli tidak boleh lebih besar dari pada harga jual’, 16,1);
ROLLBACK TRAN;
END


Trigger yang dibuat di atas akan bekerja pada saat ada aksi insert atau update data pada tabel barang. Batch dalam trigger akan memeriksa apakah harga beli lebih mahal dari harga jual. Bila ternyata harga beli lebih mahal dari harga jual maka pesan error (RAISERROR) akan dimunculkan dan transaksi dibatalkan (ROLLBACK TRAN). Untuk memeriksa apakah trigger tersebut bekerja, ketikkan query berikut ini.

USE contoh2;
INSERT INTO barang VALUES{'000OOOOO12’,'Mentega Raja Tega’,'karton',
1000OO,9000Oi,5,20,7"';>:


Perhatikan bahwa di query tersebut sengaja diberikan harga beli lebih mahal daripada harga jual untuk memicu error. Hasil dari query tersebut dapat Anda lihat pada gambar berikut ini.



Dengan demikian trigger memang telah bekerja sebagaimana seharusnya.
Apabila Anda perhatikan pada Object Explorer pada bagian dbo.TblSerahTerima dan di bawah cabang trigger, maka Anda akan melihat sebuah obyek baru Seperti Gambar di bawah: 



Sekian postingan kali ini semoga bisa membantu agan agan semua, :)




Tidak ada komentar:

Posting Komentar