You are here: Re: Trigger « MsSQL Server « IT news, forums, messages
Re: Trigger

Posted by Shane on 05/20/07 20:05

Erland Sommarskog wrote:

> DA Morgan (damorgan@psoug.org) writes:
>>> The trigger fires *after* an insert has taken place, therefore in the
>>> second case the trigger rollsback because the country does now indeed
>>> exist in the subquery
>>>
>>> Any ideas?
>>
>> That is one of the major problems with a product that only has AFTER
>> triggers. In those products that have both BEFORE and AFTER triggers,
>> AFTER triggers are used for auditing and BEFORE triggers used for
>> security and integrity. Essentially you are trying to do the right
>> thing, in the wrong way, in a product that truly doesn't support it.
>
> Actually, SQL Server also has INSTEAD OF triggers, which is not really
> the same thing as an BEFORE trigger. Since an INSTEAD OF trigger requires
> you to redo the action that trigger it, it less apetizing for checks -
> unless the check is of the kind "DELETE is not permitted on this table".
>
> But a BEFORE trigger would not have help Shane, as his trigger seemed to
> perform a check against existing data in the table. The logic appears
> to be "it's OK to insert UK in the table if it's already there". His
> AFTER trigger permits everything. But a BEFORE trigger would have kept
> the table empty.
>
>
>
>

Hi
Yes you are correct, my trigger would keep a new table empty, however this
trigger is being written for an existing table, that has existing entries.
I think the point of my trigger is supposed to keep the country list static.

I have used the following trigger, however I am not happy with it, as the
values are hard-coded.

create trigger chk_team
on teams
for insert as
declare @chkCountry as char(2)
select @chkCountry = (select country from INSERTED)
if @@ROWCOUNT =0 RETURN
If @chkCountry NOT IN ('NZ', 'AU', 'SA')

BEGIN
raiserror('Impossible country entered', 16, 1)
ROLLBACK TRANSACTION
END

--
Q: How can you tell that a mathematician is extroverted?
A: When talking to you, he looks at your shoes instead of at his.

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация