0

私はIBMDB2データベースを使用しています。テーブルにトリガーを作成しました。トリガー内から、トリガーがどのテーブルにあるかを知る必要があります。何かアイデアはありますか?ありがとう!

4

1 に答える 1

0

私の知る限り、DB2 LUW には「現在実行中のトリガー」の名前を格納するシステム変数がないため、これを動的に実行できるかどうかはわかりません。ただし、トリガー名をトリガーにハードコードすると、

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

トリガーの本体。

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;

お役に立てれば。

于 2012-08-13T22:54:28.630 に答える