db2 如何获取应用了触发器更新的SQL数据更改语句的结果?

cl25kdpy  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(227)

我有一个需求,我需要得到更新语句的即时结果。我发现我可以通过使用SQL data-change-statement modifiers来实现这一点。但是,在应用了所有关联的触发器之后,我无法得到最终结果。例如,假设我有以下查询:

SELECT empno, salary FROM FINAL TABLE
    (UPDATE employee SET salary = salary * 1.10 WHERE job = 'CLERK')

让我们假设我有一个触发器,它执行以下操作:

CREATE TRIGGER EXTRA_PAY_RISE AFTER UPDATE ON employee 
REFERENCING OLD AS oldrow  
NEW AS newrow 
FOR EACH ROW MODE DB2SQL 
WHEN (newrow.dept = 'sales')
UPDATE employee SET salary = salary * 1.01 WHERE name = newrow.name;

如何从第一个包含所有关联触发器应用的更新的select语句中获得结果(如果可能的话)?

k10s72fa

k10s72fa1#

使用BEFORE UPDATE触发器和NEW TABLE(在任何情况下)或FINAL TABLE(如果您没有AFTER UPDATE触发器)。
如果不能使用BEFORE触发器来实现更新逻辑,那么就不能使用data-change-statement来实现目标。

相关问题