我可以使用DB2中的SIngle查询更新2个文件

问题描述:

我有2个文件,文件A和文件B(它们具有相同的密钥)。 我需要更新文件A中的某些字段以及文件B中的一些相应字段。另外,如果我能够更新文件A中的行,则需要将文件B中的字段'ERrorflag'更新为'N' 。我可以使用DB2中的SIngle查询更新2个文件

我的问题是,有没有办法在没有光标的情况下实现这一个镜头?我知道“更新”只能更新一个文件,但有没有其他选项,如“合并”?

+0

考虑触发器是否是解决方案Insert/Update/De一个表上的lete可以触发另一个表上的操作。 – mao

+1

为什么你认为你需要在一个语句中更新两个文件?你试图解决的实际问题是什么? – mustaccio

所以你可以用存储过程调用(但存储过程必须执行两个更新,每个文件一个)或触发器(文件A上的更新会触发文件B上的更新(还有两个更新语句,但第二个更新语句发生在后台)不幸的是,对于触发器选项,对文件A的任何更新都会导致触发器触发,因此如果只希望在更新文件A时更新文件B中的标志使用来自文件B的数据,您将必须确定如何在发生任何其他更新时防止文件B被更新。使用存储过程可以更容易地进行管理,并且还可以将两个更新包装在事务中确保两者都发生或不发生