【发布时间】:2013-01-10 10:29:25
【问题描述】:
我有一个这样的合并语句:
MERGE DESTINATION
USING SOURCE WHERE <Some_Conditions>
WHEN MATCHED AND <Some_Conditions> THEN DELETE
WHEN MATCHED UPDATE
WHEN NOT MATCHED INSERT
这工作正常,但我还有一个条件,即当源中不存在它们的条目时,我必须更新目标中的行。
例如
来源
Column1 Column2 Column3
-----------------------
A A A
B B B
目的地
Column1 Column2 Column3
-----------------------------------
B B <Some_Calculation>
D D <Some_Calculation>
现在,由于D 的源中没有行,我必须通过一些计算修改目标中的Column 3。但是当行匹配与否时,合并只给出delete、update 和insert 这三个选项。
如何在上面的语句中实现这个功能?
编辑
在下面用我的 cmets 编辑问题:
在上面给出的示例中,它正在运行,然后它正在更新B 并将A 插入到目标表中。但我也想更新D,即使它不在源表中
【问题讨论】:
-
@Mahmound 在上面我给出的示例中,它正在运行,然后它正在更新 B 并在目标表中插入 A。但即使源表中不存在 D,我也想更新它
标签: sql sql-server sql-server-2008-r2 merge-statement