使用merge语句插入/更新第3个表

时间:2015-11-03 03:11:16

标签: sql sql-server tsql

我有一个源表和两个目标表,我必须使用合并操作来完成此操作。 条件如下。我将源表中的数据合并到目标表1。

但是,我遇到根据以下条件更新到目标表2的问题。希望有人可以提供帮助。

注意: 我正在引用this帖子,但这篇文章显示没有条件更新第二个表但我确实有一个基于源表和第二个目标表的条件。

WHEN NOT MATCHED
  INSERT INTO target table 1
  INSERT INTO target table 2(targettable1ID, value3)
WHEN MATCHED
  IF src.value3 != target2.value3
    UPDATE targettable1 only
  ELSE 
    UPDATE targettable1 and targettable2


merge into [TargetTable1] as tgt
using (select * from [SrcTable] as src)
on tgt.SrcTableID = src.SrcTableID
when not matched then insert (Value1, Value2) values(src.Value1, src.Value2)
when matched then update set tgt.Value1 = src.Value1, tgt.Value 2 = src.Value2

[SrcTable]
SrcTableID
Value1
Value2
Value3

[TargetTable1]
TargetTable1ID
SrcTableID
Value1
Value2

[TargetTable2]
TargetTable2ID
TargetTable1ID(foreign key for targettable1)
Value3(from SrcTable Value3)

0 个答案:

没有答案