November 16, 2004 at 2:52 pm
I have defined a trigger on a table to basically select some of the columns and put them in another table upon insert or update. The trigger checks to see if the table exists and drops it if it does before the select into occurs.
My problem is that it does not work. The syntax check is okay so I do not understand what is wrong?
Thanks for any help.
My trigger code is as follows
CREATE TRIGGER [put_pima] ON [dbo].[ASSAY_SAMPLE]
FOR INSERT, UPDATE
AS
BEGIN
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDEF_PIMA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[UDEF_PIMA] ;
SELECT SAMPLE_NUMBER, ID_NUMBER, depth_1, depth_2, TYPE_CODE, Comments
INTO UDEF_PIMA
FROM ASSAY_SAMPLE
WHERE (Extension IS NOT NULL);
END
November 16, 2004 at 4:11 pm
As you are not relying on the 'inserted' table in any way, is there any reason why you don't just create a view over the dbo.assay_sample table?
create view vwUDEF_PIMA as
SELECT SAMPLE_NUMBER, ID_NUMBER, depth_1, depth_2, TYPE_CODE, Comments
FROM ASSAY_SAMPLE
WHERE (Extension IS NOT NULL)
Then you can delete the trigger and the problem goes away
Phil
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
November 17, 2004 at 2:50 am
Keep in mind a trigger fires every time the criteria meets insert or update (in your case) !
How many times do you predict this to happen and measure afterward ?
What you wish to do is drop and create a table !?? meaning catalog-locks,..
Triggers are meanth to be short and quick in-transaction operations.
What if someone is running a select on the table to be dropped/recreated ?
Then your transaction will fail because the object cannot be dropped, so your insert or update will fail !
IMO what you are desinging here is selfdestructive
Johan
Learn to play, play to learn !
Dont drive faster than your guardian angel can fly ...
but keeping both feet on the ground wont get you anywhere :w00t:
- How to post Performance Problems
- How to post data/code to get the best help[/url]
- How to prevent a sore throat after hours of presenting ppt
press F1 for solution, press shift+F1 for urgent solution 😀
Need a bit of Powershell? How about this
Who am I ? Sometimes this is me but most of the time this is me
November 17, 2004 at 7:25 am
Thanks for the advice. I see that a view is what I should do and the best way to get what I need in this case.
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply