2012-08-07 25 views
0

我正在使用IBM DB2數據庫。我在表格中創建了一個觸發器。我需要從觸發器內部知道觸發器駐留在哪個表中。任何想法?謝謝!IBM DB2:如何檢索在其中創建觸發器的表名?

+0

...通常情況下,觸發器是針對它們放置的表格自定義的。你究竟想要完成什麼? – 2012-08-07 15:55:01

+0

取決於DB2的「風格」。 DB2 for i在觸發器緩衝區的開始處具有表和模式系統名稱以及一些其他標識元素。 – user2338816 2014-03-28 00:51:34

回答

0

據我所知在DB2 LUW中沒有系統變量存儲「當前正在執行的觸發器」的名稱,所以我不確定您是否能夠動態地執行此操作。 但是,如果你是觸發器名硬編碼到觸發器

Declare trigger_schema varchar(128) default '<PutTriggerSchemaHere>'; 
Declare trigger_name varchar(128) default '<PutTriggerNameHere>'; 

在觸發(S)的身體;

Declare schema_name varchar(128) default NULL; 
Declare table_name varchar(128) default NULL; 
SELECT TABSCHEMA, TABNAME INTO schema_name, table_name 
FROM SYSCAT.TRIGGERS 
WHERE TRIGSCHEMA=trigger_schema and TRIGNAME=trigger_name 
FETCH FIRST ROW ONLY; 

希望這會有所幫助。