我有一个场景,我需要用户合并SQL语句来同步两个表。假设我有两个表,表A和表B.模式是相同的,除了表A中的一个额外列。额外列是一个标志,告诉我哪些记录已准备好在表B中插入/更新。让我们说标志列是IsReady。它将是真还是假。
我可以在Merge Statement中使用Isready = True,或者我需要一个Temp表来将表A中的所有记录移动到Temp Table,其中IsReady = True,然后在TempTable和表B上使用Merge SQL ???
答案 0 :(得分:1)
是的,您可以在合并条件中使用该列。
merge tableB targetTable
using tableA sourceTable
on sourceTable.IsReady = 1 and [any other condition]
when not matched then
insert ...
when matched and [...] then
update ...
答案 1 :(得分:0)
这可能会对你有帮助,
merge into tableB
using tableA
on tableB.IsReady=true
when not matched then
insert (tableB.field1,tableB.field2..)
values (tableA.field1,tableA.field2..);
commit;