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

How do I get results of SQL data change statement with triggers updates applied?

我有一个要求,需要立即获得更新语句的结果。我看到我可以通过使用 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 语句中获取结果(如果可能的话)?

使用 BEFORE UPDATE 触发器和 NEW TABLE(任何情况下)或 FINAL TABLE(如果您没有 AFTER UPDATE 触发器)。

如果您不能使用 BEFORE 触发器来实现您的更新逻辑,那么您就不能使用数据更改语句来实现您的目标。