Monday 22 October 2012

Triggers in sql server


/*a trigger can be created in order to perform any action upon a DDL statement.
The scope can be database level or Server level. DDL triggers are used when you want
 a certain action to be performed when a schema change occurs*/
 create table userdata(username varchar(50),Operations varchar(30),dateandtime datetime)

 create trigger empinsert on emp
 for  insert
 as
 insert into userdata values(suser_sname(),'Inserted',getdate())

select  * from Emp
select * from UserData
insert into Emp values('DHEERAJ',16000,20)

--drop trigger <triggername>


alter trigger empinsertafter on emp
after insert
as
insert into userdata values(suser_sname(),'After Inserted',getDate())

insert into emp values('MAHADEV',8000,20)

select * from emp
select * from userdata



create trigger updateemp on emp
for Update
as
insert into UserData values(suser_sname(),'Updated',getDate())

update emp set esalary='5000' where empno='100'

select * from emp

select * from userdata


create trigger updateafter on emp
after update
as
insert into userdata values(suser_sname(),'After Updated',getdate())

update emp set ename='SHANKARP' where empno='100'

select * from userdata
select * from emp


create trigger deleteemp on emp
for delete
as
insert into userdata values(suser_sname(),'Deleted',getdate())

delete emp where empno=111
select * from userdata


create trigger deleteafter on emp
after delete
as
insert into userdata values(suser_sname(),'After deleted',getdate())

delete emp where empno=109

select * from userdata



create trigger insteadofemp on emp
instead of Insert
as
insert into UserData values(suser_sname(),'Instead of Insert',getDate())
print 'Inserted data was not saved in the table';

insert into emp values('MAHESHWAR',15000,30)
select * from emp
select * from userdata

create trigger insteadofdel on emp
instead of delete
as
insert into userdata values(suser_sname(),'Instead of delete',getdate())

delete emp where empno=108
select * from emp
select * from userdata

alter trigger insteadofupdate on emp
instead of update
as
insert into userdata values(suser_sname(),'Instead of updated',getdate())
print 'it was not updated'
update emp set esalary=8000 where ename='SHANKARP'

select * from emp
select * from userdata



No comments: