当前位置: 代码迷 >> Sql Server >> 问一个关于触发器的有关问题,INSTEAD OF delete里面执行delete会再次触发这个触发器吗
  详细解决方案

问一个关于触发器的有关问题,INSTEAD OF delete里面执行delete会再次触发这个触发器吗

热度:71   发布时间:2016-04-25 00:45:50.0
问一个关于触发器的问题,INSTEAD OF delete里面执行delete会再次触发这个触发器吗
INSTEAD OF delete这个触发器里面再执行delete会不会又激活这个触发器?

有个表RelationTree,里面有个ID和ParentID还有一个Mark字段,如果Mark小于100的话,就删除这个表的ParentID为id的内容
如下:

create trigger trig_Delete_RelationTree on RelationTree INSTEAD OF delete
AS 
EGIN
    declare @ID int
    declare @Mark int
    SET NOCOUNT ON;
    IF exists (select count(*) from deleted)
    BEGIN
select @ID = id, @Mark = Mark from deleted
IF(@Mark < 100)--
BEGIN
delete RelationTree where ParentID = @ID;
END
END
END


现在问题来了,不知道这个代码里delete会不会再次触发这个触发器?
同时,我想@Mark >= 100时就直接删除,那么如果还会触发的话不就死循环了,特此求解!
------最佳解决方案--------------------
不会的,你试试不就知道了
------其他解决方案--------------------
不会,不然就死循环了。
  相关解决方案