一尘不染

DB2是否等效于SQL Server的TRIGGER_NESTLEVEL()?

sql

我正在尝试控制对DB2(v9.7)的递归触发器,不幸的是,IBM文档没有提及一种了解当前触发器调用处于哪个递归级别的方法。

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


阅读 129

收藏
2021-05-23

共1个答案

一尘不染

不幸的是,DB2对此没有任何功能或存储过程。您最多可以有16个触发级联级别。

它是硬编码的,不能更改。

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

如果要避免调用同一触发器,则有一种解决方法:

  1. 为表创建视图=>创建视图vTable1作为Select * from Table1
  2. 为vTable1创建INSTEAD OF TRIGGER。=>在vTable1上创建触发器TRG_INSERT代替插入
  3. 在TRG_INSERT中,插入到table1中。
2021-05-23