触发器能被触发多少次?

【试验】

一个触发器在一个表上,for insert,update,delete

declare @i int;

set @i = 1;

while(@i <100)

begin

insert into table......

set @i = @i + 1;

end

--触发器执行99次

delete from table where id between 1 and 10;

--触发器执行一次,影响数=10

在mssql和sybase都运行了,都是如此。

简单结论:触发器和执行语句有关,而非执行语句影响记录有关!!

一直以为新增N条记录或删除N条记录都对触发器的执行都应该是N次。

由上试验可知道,并非这样的~~

无论是否有影响,只要满足触发关键字都要对触发器进行一次触发~

ps:多次执行同一句删除语句,第一次影响N条,后面都影响0条。但跟踪结果触发器还是执行多次~~

posted @ 2011-02-21 15:58  西就东城  阅读(332)  评论(0编辑  收藏  举报