如果update触发器被触发后执行一条update自己的语句,触发器里update自己的语句不会再次触发。

解决方案 »

  1.   

    exec sp_dboption '库名','recursive triggers','true/flase'
    当为 true 时,启用触发器递归调用。这时会造成循环触发,直到超过触发器的最大递归层数一数32,然后报错
    当为 false 时,只防止直接递归。这时没影响,不会再次触发触发器
      

  2.   

    如果楼主一定要这么干的话是可以的,你可以在另外的表中写个状态参考值.然后使用
    EXEC Sp_dboption 'DataBaseName','recursive triggers','true/flase'
    将触发器设置为递归式.
    不过要在触发器中的updata语句前判断状态参考值的状态,再决定它是否执行.
    如果只要一次递归,那就在初次执行时将它的值改变.如果要按条件递归也是一样的,在适当的时候改变状态参考值就可以了.比如要递归功10次,那就把初始值设为0,在每次递归时给参考值加1.值到不小于10时不再执行就可以了.
      

  3.   

    exec sp_dboption '库名','recursive triggers','true/flase'