December 19, 2018 at 10:02 am
Hi wondering if someone can give some insight into what works better for a trigger below:
example:
Simplifying
Table Customer
id int
Change_Flag bit
status char(1)
Generally records are
id (some unqiue id) -- this is an indexed column
change_flag 0
status null
During the day we may get new records inserted with status with "X" or updated for the status column with "X"
when status = "X" then change_flag needs to be set to 1
I'm interested in a after insert, update -- which would be a better implementation ?
Or is there a best practice implementation that would be better.
end
end
or
inserted i
end
end
Thanks for the ideas!
--------------------------------------------------
...0.05 points per day since registration... slowly crawl up to 1 pt per day hopefully
December 19, 2018 at 1:02 pm
This one is not so popular
I'm going to go with
IF UPDATE(status)
begin
update example_table
set flag =1
from example_table et
where status = 'X'
and EXISTS (select 1 from inserted i wherei.id = et.id)
end
The index on 'id' in example_table will make the update quick for setting the flag in option 2 but option one
I believe "EXISTS" i faster as evals true/false rather than the whole join of the query is that right?
I have not wrote T-SQL in awhile so figure some of those more fluent can confirm
thanks!
--------------------------------------------------
...0.05 points per day since registration... slowly crawl up to 1 pt per day hopefully
December 19, 2018 at 1:09 pm
I'd add the standard "nocount" setting, but other than that it looks good:
alter trigger trg_up_in_changeflag
on example_table
after update, insert
as
set nocount on
begin
IF UPDATE(status)
begin
update test_table
set flag =1
from example_table et
where status = 'X'
and EXISTS (select 1 from inserted i where i.id = et.id)
end /*if*/
end /*begin*/
SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".
December 19, 2018 at 1:16 pm
ScottPletcher - Wednesday, December 19, 2018 1:09 PMI'd add the standard "nocount" setting, but other than that it looks good:
alter trigger trg_up_in_changeflag
on example_table
after update, insert
as
set nocount on
begin
IF UPDATE(status)
begin
update test_table
set flag =1
from example_table et
where status = 'X'
and EXISTS (select 1 from inserted i where i.id = et.id)
end /*if*/
end /*begin*/
Hey great thanks so much Scott!
Good call on nocount... reduce network traffic with those unneeded messages
--------------------------------------------------
...0.05 points per day since registration... slowly crawl up to 1 pt per day hopefully
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy