我正在创建一个更新触发器。我有一种情况,我需要在表列上测试条件,但实际上并不知道确切的列名是什么。触发器是通用的,可以应用于具有不同列的任何表。
伪代码:
// define a cursor that loops through all columns in "MyTable"
Define cursor C1 for (select COLS from SYSCAT.TABLES where TABS="MyTable")
FOR
// take the next column from the cursor
@temp_var = C1.COLS
// DELETED and INSERTED are tables that also contain the same columns as "MyTable" table.
if(DELETED.@temp_var <> INSERTED.@temp_var)
THEN
...
上面的语句if(DELETED.@temp_var <> ...
当然不起作用,但也许你可以看到我在做什么?所以我希望它在运行时出现,例如是if(DELETED.MyColumn <>... where "MyColumn"
一个列 in"MyTable"
和 in 。请注意,由于此方法应该是通用的,因此我事先不知道该表有哪些列(取决于使用的特定表)。INSERTED
DELETED columns
关于如何动态构建 if 语句的任何想法?