4

我试图控制 DB2 (v9.7) 上的递归触发器,不幸的是,IBM 文档没有提到知道当前触发器调用处于哪个递归级别的方法。

我发现 sql-server: 上有这个函数trigger_nestlevel(),它基本上可以满足我的要求(知道实际的触发器递归调用级别)。所以我想知道DB2中是否有等效的功能。

4

1 回答 1

0

不幸的是,DB2 没有为此提供任何函数或存储过程。您最多可以有 16 个触发级联级别。

它是硬编码的,无法更改。

顺便说一句,在 DB2 中,如果一个触发器导致另一个触发器被触发,则称为触发器级联。您可以通过 NO CASCADE 关键字避免级联。

如果你想避免调用同一个触发器,有一个解决方法:

  1. 为您的表创建一个视图 => Create View vTable1 as Select * from Table1
  2. 为 vTable1 创建一个 INSTEAD OF TRIGGER。=> 创建触发器 TRG_INSERT 而不是在 vTable1 上插入
  3. 在 TRG_INSERT 中,插入到 table1。
于 2012-12-21T22:09:54.737 回答