Stored procedures 在触发器事件期间计算日期时间寄存器

Stored procedures 在触发器事件期间计算日期时间寄存器,stored-procedures,triggers,db2,db2-zos,Stored Procedures,Triggers,Db2,Db2 Zos,我正在测试datetime特殊寄存器(声明)的以下行为 如果使用datetime特殊寄存器的SQL语句为 在 在触发器的作用域中,Db2使用触发SQL的时间戳 语句来确定特殊寄存器值 因此,我用一个timestamp字段包装了一个表,这是一个存储过程(原生sql),它将相同的10行插入表中,tamestamp列的值为“current timestamp”。然后我在另一个表上创建了一个触发器(在insert触发器之后) 结果是10行时间戳增加。我希望时间戳与在我的解释中存储过程在触发器范围内的时间

我正在测试datetime特殊寄存器(声明)的以下行为

如果使用datetime特殊寄存器的SQL语句为 在 在触发器的作用域中,Db2使用触发SQL的时间戳 语句来确定特殊寄存器值

因此,我用一个timestamp字段包装了一个表,这是一个存储过程(原生sql),它将相同的10行插入表中,tamestamp列的值为“current timestamp”。然后我在另一个表上创建了一个触发器(在insert触发器之后)

结果是10行时间戳增加。我希望时间戳与在我的解释中存储过程在触发器范围内的时间戳相同

你能告诉我这句话的意思吗



我猜注1适用

如果在单个SQL语句中多次使用此特殊寄存器,或在单个语句中与当前日期或当前时间一起使用,则所有值都基于单个时钟读数。⑨

⑨非原子多行插入或合并语句除外


我很感激你的研究,但我并不完全满意。老实说,我正在等待一个带有触发器和udf/proc的场景,在这个场景中,时间戳被导出一次。
create trigger date_check 
    after insert on test
    for each row mode db2sql
    call date_sp2() 

create procedure date_sp2()
     language sql
     BEGIN
        declare i smallint default 0; 
        my_loop: LOOP 
          insert into empty_char values('Y','Y','Y','Y',current date, current timestamp);
          SET I = I + 1;
          IF I = 10 THEN LEAVE my_loop; 
          END IF;
        END LOOP my_loop;
     END