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] |
|
|
|
|
|