Thursday, March 8, 2012

Create One Trigger For Both Update and Delete

hi,
CAn i have one trigger for both Update and Delete
Delete Trigger
-------
create Trigger [tr_delete_user_log]
on [dbo].[user_log] for delete
as
begin
insert into z_user_log select * from deleted
end

Trigger Update
-------
CREATE Trigger [tr_update_user_log]
on [dbo].[user_log] for update
as
begin
insert into z_user_log select * from deleted
end

Can i have one trigger instead of these Triggers ..On 30 Apr 2007 06:02:57 -0700, satish wrote:

Quote:

Originally Posted by

>hi,
>CAn i have one trigger for both Update and Delete


(snip)

Quote:

Originally Posted by

>Can i have one trigger instead of these Triggers ..


Hi satish,

Yes.

CREATE Trigger [tr_update_delete_user_log]
on [dbo].[user_log] for update, delete
as
begin
insert into z_user_log select * from deleted
end

--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis|||satish (satishkumar.gourabathina@.gmail.com) writes:

Quote:

Originally Posted by

CAn i have one trigger for both Update and Delete
Delete Trigger
-------
create Trigger [tr_delete_user_log]
on [dbo].[user_log] for delete
as
begin
insert into z_user_log select * from deleted
end


As Hugo said, you can. Permit me to point that your example exhibits
two cases of bad practice:

o INSERT without a values list. If someone adds a column to user_log,
the INSERT statement will fail.
o SELECT *. While convenient for ad hoc queries, it's bad in production
code. In this example - if someone adds or removes a column - or
just changes the column order, the INSERT statement will fail. SELECT *
also make it more difficult to find where different columns are
actually used.

--
Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pr...oads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodin...ions/books.mspx|||On Mon, 30 Apr 2007 21:31:28 +0000 (UTC), Erland Sommarskog wrote:

Quote:

Originally Posted by

Permit me to point that your example exhibits
>two cases of bad practice:


(snip)

Hi Erland,

Thanks for stepping in. I new feel so bad for not mentioning that
myself. Please remind me not to reply when tired in the future :-)

--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis

No comments:

Post a Comment