Thursday, 17 July 2014

Insert-Update-Delete in Single STORED PROCEDURE,TRIGGER

MAIN TABLE:
CREATE table tbl_emp_sree(ID int,name varchar(30))
LOG TABLE:
CREATE table tbl_emp_sree_log(ID int ,name varchar(10),CrDate datetime,crBy varchar(20),Action varchar(10) )
PROCEDURE:
Create proc Usp_dml_tbl_emp_sree(@id int=NULL,@name varchar(10)=null,@flag char(1)=null) AS
BEGIN
Begin try
if(@flag ='I')
begin
insert into tbl_emp_sree(id,name) values(@id,@name)
end
else if(@flag='U')
begin
Update tbl_emp_sree set name=@name where ID=@id
end
else
begin
delete from tbl_emp_sree where id=@id
end
END try
begin catch
declare @eMessage varchar(500)=error_message()
print 'Error :' + @eMessage
end catch
END
exec Usp_dml_tbl_emp_sree @id=2 ,@NAME='ANIL',@FLAG='I'
TRIGGER:
create trigger tr_tbl_emp_sree on tbl_emp_sree for insert,update,delete
as
begin
 if exists(select 1 from inserted) and exists(select 1 from deleted)
 begin
    insert into tbl_emp_sree_log
    select *,GETDATE(),SYSTEM_USER,'insert_u' from inserted
    insert into tbl_emp_sree_log
    select *,GETDATE(),SYSTEM_USER,'Delete_U' from deleted
 end
 else if exists(select 1 from inserted)
 begin
insert into tbl_emp_sree_log
    select *,GETDATE(),SYSTEM_USER,'insert' from inserted
 end
 else
 begin
insert into tbl_emp_sree_log
    select *,GETDATE(),SYSTEM_USER,'Delete' from deleted
 end
 end


No comments:

Post a Comment