2014-10-08 40 views
1

我一直在試圖查看AS400觸發器的觸發器定義,並且似乎找不到幫助我這樣做的命令。我可以列出觸發器,創建或刪除它們,但是如何查看觸發器定義。如何查看AS400中的觸發器定義

+0

一種選擇是我們在www.bvstools.com/lstffd.html提供的免費實用程序LSTFFD。它不僅顯示文件定義,鍵,邏輯,而且還顯示觸發器。 – bvstone 2014-10-08 19:05:59

回答

4

DSPFD FILE(LIB/FILE) TYPE(*TRG)會給你關於什麼程序被調用以及什麼時候觸發器觸發的基本信息。

+0

但它不提供'觸發器定義'。 – user2338816 2014-10-10 00:30:16

+0

請說明'Trigger Definition'的含義。 – 2014-10-10 17:06:52

+0

樣本定義添加到我的答案。 – user2338816 2014-10-10 23:37:30

2

使用「iSeries導航器」深入查看「數據庫」項目中的連接。在適當的架構下,單擊觸發器。然後右鍵單擊您感興趣的觸發器並選擇「定義」。

查看觸發器列表時,查看「類型」列以查看觸發器是「SQL」還是「External」。 「外部」觸發器寫入HLL,如RPG,C,COBOL或其他。要查看外部定義,您需要找到用於編譯的源代碼。 DSPPGM命令可以列出程序的模塊並顯示源的來源。


一個平凡的SQL觸發器定義的例子可以用INAV以這種方式來訪問: iNav drill-down

下鑽後,右鍵單擊所需的觸發,然後選擇「定義」。該定義的常規選項卡上看起來是這樣的: General tab

和SQL標籤可能是: SQL tab

這個例子SQL觸發器簡單地將消息發送到消息隊列刀片是運行時。

外部觸發器會顯示程序的名稱。從程序描述中,您可以追蹤到源代碼。

1

TRIGGER信息可從目錄VIEWs中獲得,就像其他任何DB2一樣;即DB2 for i [「for AS400」來自OP]與其他DB2變體[LUW和for z]或其他將通過其SQL目錄提供對元數據和類似信息的訪問的RDBMS稍有不同。
描述如何定位\通過iNav->數據庫功能呈現TRIGGER信息的答案只是一條特定路徑,可以通過該路徑獲得目錄中的信息;更一般地說,可以使用目錄數據的SQL SELECT直接查詢相同的數據。

SYSTRIGGER目錄VIEW的ACTION_STATEMENT [for TEXT]列可能是OP引用的內容,至少部分是「觸發器定義」。當然TRIGGER的定義方面是遠遠超過只是有效的例程定義,包括諸如ACTION_TIMING這樣的細節,其描述了動作是在BEFORE還是在觸發器之後執行的事件爲任何INSERT,UPDATE或INSTEAD。

以下文檔是對目錄更普遍,而SYSTRIGGERS目錄視圖具體爲:
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

相關問題