直接或间接触发本表,这个被称为“递归触发(Recursive triggers)”
作用于数据库一级
确省是关闭的
T-SQL:
sp_dboption [[@dbname =] 'database'] 
[, [@optname =] 'recursive triggers'] 
[, [@optvalue =] 'true|false']
“递归触发”或“嵌套触发(Nested Triggers)”最多可以达到32层,如果超过32层,则全部“回滚(Rollback)”
以上观点可能有错误,希望指点

解决方案 »

  1.   

    我做了一個實驗,的確象xubin_sh說得那樣,會出錯,進程調用最多達到32層。Server: Msg 217, Level 16, State 1, Procedure ChooseValue, Line 9
    Maximum stored procedure nesting level exceeded (limit 32).
      

  2.   

    有一個簡單的辦法,給表增加一個bit字段,default為0。正常的更新不用管它,觸發器裡更新則將此字段設為1。這樣就可以控制了。
      

  3.   

    Sql Server中有个公用变量 @@NESTLEVEL 可以返回当前嵌套的层数
    例子
    IF @@NESTLEVEL > 31
      RETURN
    ELSE
      BEGIN
        ...
        ...
      END
        
      

  4.   

    将配置选项nested trigger的值由1变为0,将阻止被嵌套的触发器执行!
      

  5.   

    请问PJY
    nested trigger的值在哪里设定??
      

  6.   

    sp_configure [[@configname =] 'nested triggers'] [,[@configvalue =] '0|1']
      

  7.   

    How to set the nested trigger option (Enterprise Manager)
    To set the nested trigger option Expand a server group. 
    Right-click a server; then click Properties. 
    Click the Server Settings tab. 
    In the Server behavior box, select or clear Allow triggers to be fired which fire other triggers (nested triggers). 
      

  8.   

    不一定会出错我以前Bom程序里求低层码经常用递归触发。关键要控制出口。我相信你在里面应该
    测试Update(column_name)符合条件的再Update 或 Insert