我可以在触发器中声明变量吗?

时间:2011-12-05 12:29:32

标签: sql triggers db2

我必须在db中编写一个触发器。

我想在其中声明一些局部变量,并在将值插入表之前进行一些操作。

使用DB2,是否可以在触发器代码中包含局部变量?

2 个答案:

答案 0 :(得分:2)

是的,你可以!

以下是来自iSeries DB2 SQL编程manual的一些示例代码(All in SQL)(它往往会在LUW后面运行几个版本):

CREATE TRIGGER TransactionBeforeTrigger BEFORE INSERT ON TransactionTable
REFERENCING NEW AS new_row
FOR EACH ROW MODE DB2ROW
BEGIN
DECLARE newmonth SMALLINT;  -- Here's the decleration
SET newmonth = MONTH(new_row.DateOfTransaction);
IF newmonth < 4 THEN
    SET new_row.FiscalQuarter=3;
ELSEIF newmonth < 7 THEN
    SET new_row.FiscalQuarter=4;
ELSEIF newmonth < 10 THEN
    SET new_row.FiscalQuarter=1;
ELSE
    SET new_row.FiscalQuarter=2;
END

答案 1 :(得分:0)

这取决于平台。对于z / OS平台,答案是否定的。与其他平台相比,z / OS往往落后于功能。