0

我正在使用 IBM DB2 数据库。我在表中创建了一个触发器。我需要从触发器中知道触发器位于哪个表中。有什么想法吗?谢谢!

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 回答