SQL 触发器-递归、嵌套触发器

作者:leen 来源:ITPOW 日期:2006-5-11

递归触发器

递归分两种,间接递归和直接递归。我们举例解释如下,假如有表 1、表 2 名称分别为 T1、T2,在 T1、T2 上分别有触发器 G1、G2。

  • 间接递归:对 T1 操作从而触发 G1,G1 对 T2 操作从而触发 G2,G2 对 T1 操作从而再次触发 G1...
  • 直接递归:对 T1 操作从而触发 G1,G1 对 T1 操作从而再次触发 G1...

嵌套触发器

类似于间接递归,间接递归必然要形成一个“环”,而嵌套触发器不一定要形成一个环,它可以 T1->T2->T3... 这样一直触发下去,最多允许嵌套 32 层。


设置直接递归

默认情况下是禁止直接递归的,要设置为允许有两种方法:

  • T-SQL:exec sp_dboption 'dbName', 'recursive triggers', true
  • 企业管理器:数据库上点右键->属性->选项。

设置间接递归、嵌套

默认情况下是允许间接递归、嵌套的,要设置为禁止有两种方法:

  • T-SQL:exec sp_configure 'nested triggers', 0 --第二个参数为 1 则为允许
  • 企业管理器:注册上点右键->属性->服务器设置。
相关文章