回答

收藏

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

技术问答 技术问答 276 人阅读 | 0 人回复 | 2023-09-12

我试图控制正确的DB2(v9.7)的递归触发器,不幸的是,IBM文档没有提到一种方法来理解当前触发器调用的递归级别。0 Y. j5 b8 T0 S7 F- ^$ @
我发现在sql-server:上有此功能trigger_nestlevel(),它基本上可以实现我想要的功能(知道实际触发器递归调用级别)。所以我想知道DB二是否有等效功能。; m! g6 K) z& a. A+ s
                                                                4 N# z$ G( H9 r) {
    解决方案:                                                               
" o+ ~+ N; o. |$ ?; Y: V                                                                不幸的是,DB没有任何功能或存储过程。您最多可以有16个触发级联。4 ]# D5 y0 F  @4 |6 Q# i
它是硬编码能更改。
* n* o" h5 t* u2 [( B5 q4 nBTW在DB如果一个触发器导致另一个触发器被触发,则称为触发器级联。而且,你可以通过NO CASCADE避免关键字级联。
3 B+ @$ _. m. H0 ~" u, q' d; x" @要避免调用同一触发器,有一种解决方案:7 n* A6 k4 c  F
[ol]为表创建视图=>创建视图vTable1作为Select * from Table1
. b5 |( U* F; _: q" X6 K! n$ }为vTable1创建INSTEAD OF TRIGGER。=>在vTable触发器在1上创建TRG_INSERT代替插入
4 n( X! J: b( N0 t! k* x- s/ \0 ~6 s  z2 C在TRG_INSERT中,插入到table1中。[/ol]
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则