Thursday, August 11, 2022

Membuat Trigger pada SQL Server

 


Berikut adalah cara membuat trigger pada SQL Server

untuk memudahkan pembuatan triiger yang mengakses tabel maka perlu dibuatkan 2 tabel sebagai contoh : nama table : Person dan logPersen, dengan isi dan field pada tabel dibawah :

Person

Kode         Nama  Umur
MBMike Bun      25      


logPerson

Kode               Nama              Umur             Keterangan     

format :

CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name   

ON { table | view }   

[ WITH <dml_trigger_option> [ ,...n ] ]  

{ FOR | AFTER | INSTEAD OF }   

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }   

[ WITH APPEND ]  

[ NOT FOR REPLICATION ]   

AS { sql_statement  [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }  

  

<dml_trigger_option> ::=  

    [ ENCRYPTION ]  

    [ EXECUTE AS Clause ]  

  

<method_specifier> ::=  

    assembly_name.class_name.method_name  


Format simple :

CREATE OR ALTER TRIGGER [nama_trigger]

ON [table atau view]

{ FOR | AFTER | INSTEAD OF }

{ [DELETE] [,] [INSERT] [,] [UPDATE] }

AS

[sql_statement]


Contoh :

Create OR Alter Trigger  logPerson on Person

   FOR  INSERT, UPDATE, DELETE

AS 

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

    SET NOCOUNT ON;

 

    -- Insert statements for trigger here

    if(exists(select 1 from inserted))

    begin

 Insert logPerson (kode, nama, umur, keterangan) values (new.kode, new.nama,  new.umur, 'Insert Penambahan baru');

    end

 if(exists(select 1 from updated))

    begin

Insert logPerson (kode, nama, umur, status) values (old.kode, old.nama,  old.umur, 'Simpan data lama sebelum diUpdate'); 

 Insert logPerson (kode, nama, umur, status) values (new.kode, new.nama,  new.umur, 'Insert penambahan baru setelah diUpdate');

    end

     if(exists(select 1 from deleted))

    begin

 Insert logPerson (kode, nama, umur, status) values (old.kode, old.nama,  old.umur, 'data yang telah dihapus ');

    end

End

Go

Menjalankan :

Insert person(kode, nama, umur) values ('JT', 'Johanes Tan', 30);

Hasil :

Persen

 Kode               Nama  Umur   
MBMike Bun    25
JT             Johanes Tan30          

logPerson

Kode               Nama Umur  Keterangan  
JTJohanes Tan      30      Insert   Penambahan Baru 


update person set umur  35 where kode = 'JT';

Hasil :

Persen

 Kode               Nama  Umur   
MBMike Bun        25
JT             Johanes Tan    35         

logPerson

Kode               Nama        Umur        Status
JTJohanes Tan      30      Insert  Penambahan Baru
JTJohanes Tan      30     Simpan data lama sebelum diUpdate  
JTJohanes Tan      35     Insert penambahan baru setelah diUpdate


Delete from person where kode = 'MB'; 

Kode               Nama  Umur
JTJohanes Tan   35


logPerson

Kode               Nama  Umur  Keterangan
JTJohanes Tan      30      Insert  Penambahan Baru    
JTJohanes Tan      30      Simpan data lama sebelum diUpdate     
JTJohanes Tan      35      Insert penambahan baru karena perubahan lama  
MBMike Bun      25      data yang telah dihapus    

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...