如何在AS400中查看触发器定义

时间:2014-10-08 16:24:52

标签: ibm-midrange db2-400

我一直在尝试查看AS400触发器的触发器定义,但似乎找不到帮助我这样做的命令。我可以列出触发器,创建或删除它们,但是如何查看触发器定义。

4 个答案:

答案 0 :(得分:4)

DSPFD FILE(LIB/FILE) TYPE(*TRG)将为您提供有关调用的程序以及触发器触发时的基本信息。

答案 1 :(得分:2)

使用iSeries Navigator深入查看“数据库”项中的连接。在相应的架构下,单击“触发器”。然后右键点击您感兴趣的触发器并选择“定义”。

查看触发器列表时,请查看'类型'列,以查看您的触发器是否是' SQL'或者'外部'。一个'外部'触发器写入HLL,如RPG,C,COBOL或其他。要查看外部定义,您需要找到用于编译的源。 DSPPGM命令可以列出程序的模块,并显示源的位置。


可以使用iNav以这种方式访问​​一个简单的SQL触发器定义示例: iNav drill-down

向下钻取后,右键单击所需的触发器并选择'定义'。定义的“常规”选项卡如下所示: General tab

SQL选项卡可以是: SQL tab

此示例SQL触发器仅在运行INSERT时将消息发送到消息队列。

外部触发器将显示程序的名称。从程序说明中,您可以跟踪来源。

答案 2 :(得分:1)

TRIGGER信息可以从目录VIEW获得,就像任何其他DB2一样;即DB2 for i [" for AS400"来自OP]与其他DB2变体[LUW和for z]或其他可通过其SQL目录访问元数据和类似信息的RDBMS略有不同。
答案描述如何定位\提供TRIGGER通过iNav->数据库功能的信息只是一个特定的路径,可以从目录中获取信息;更一般地说,可以使用目录数据的SQL SELECT直接查询相同的数据。

SYSTRIGGER目录VIEW的ACTION_STATEMENT [for TEXT]列可能是OP所指的,至少在部分,作为"触发定义"。当然,TRIGGER的定义方面仅仅是有效的例程定义远远超过,包括描述动作是否在触发事件定义为之后执行的ACTION_TIMING等详细信息。 INSERT,UPDATE或INSTEAD中的任何一个。

以下文档更广泛地用于目录,具体是SYSTRIGGERS目录VIEW:
http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/db2/rbafzcatalogtbls.htm
http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/db2/rbafzcatsystrigger.htm

答案 3 :(得分:0)

您可以使用QSYS2.GENERATE_SQL()程序获取触发器的定义。