06 Dea Harnita Trigger MI 3B

6
Dea Harnita | MI 3B | 1131140075 1. Pembuatan Database Nama Database : SampleDatabase Table : Employee_Test dan Employee_Tes_Audit 2. a. After Insert Trigger Trigger

Transcript of 06 Dea Harnita Trigger MI 3B

Dea Harnita | MI 3B | 1131140075

1. Pembuatan DatabaseNama Database : SampleDatabaseTable : Employee_Test dan Employee_Tes_Audit

2.a. After Insert Trigger

Trigger

Dea Harnita | MI 3B | 1131140075

b. After Update Trigger

c. After Delete

Trigger

Dea Harnita | MI 3B | 1131140075

d. Instead of delete

e. Disable trigger

Trigger

Dea Harnita | MI 3B | 1131140075

f. Enable Trger

3. TRIGGER Sendiria. AFTER INSERT

--cobaALTER TRIGGER trgAfterInsert ON [dbo].[Employee_Test]FOR INSERTAS

declare @empid int;declare @empname varchar(100);declare @empsal decimal(10,2);declare @audit_action varchar(100);

select @empid=i.Emp_ID from inserted i;select @empname=i.Emp_Name from inserted i;select @empsal=i.Emp_Sal from inserted i;set @audit_action='Inserted Record -- After Insert Trigger.';

insert into Employee_Tes_Audit(Emp_ID,Emp_Name,Empl_Sal,Audit_Action,Audit_Timestamp)

Values(@empid,@empname,@empsal,@audit_action,getdate());

PRINT 'Setelah Insert Trigger.'GO

--after insertinsert into Employee_Test values('Dea',1400);

Trigger

Dea Harnita | MI 3B | 1131140075

b. INSTEAD UPDATEALTER TRIGGER trgInsteadDelete ON [dbo].[Employee_Test]INSTEAD OF UPDATEAS

declare @empid int;declare @empname varchar(100);

declare @empsal decimal(10,2);declare @audit_action varchar(100);

select @empid=d.Emp_ID from inserted d;select @empname=d.Emp_Name from inserted d;select @empsal=d.Emp_Sal from inserted d;

BEGINif(@empsal>1500)begin

Raiserror('Cannot update salary > 1500',16,1);ROLLBACK;

endelsebegin

Trigger

Dea Harnita | MI 3B | 1131140075

if update(Emp_Name)set @audit_action='update Record-- after update

trigger.';if update (Emp_Sal)set @audit_action='Update Record--After Update Record.';

COMMIT;

insert into Employee_Tes_Audit

(Emp_ID,Emp_Name,Empl_Sal,Audit_Action,Audit_Timestamp)Values(@empid,@empname,@empsal,'update-- instead of table

trigger.',getdate());

PRINT 'Record update -- Instead of update trigger.'end

endGO

--coba instead updateupdate Employee_Test set Emp_Sal=1500 where Emp_ID=12

Trigger