我有2个表具有相同的表结构。表A包含每个记录中具有3个唯一键的所有事务。表B仅包含条件基础记录。
我希望比较两个表,如果表B的匹配记录比我想要更新的那样,并且表B没有匹配记录而不是表B中的插入。
请你建议最好的办法,如ssis或其他任何东西
答案 0 :(得分:1)
最简单的方法是MERGE
声明:
MERGE INTO Table_B
USING Table_A
ON TableA.ID1 = Table_B.ID1 AND TableA.ID2 = Table_B.ID2 AND TableA.ID3 = Table_B.ID3
WHEN MATCHED THEN UPDATE SET A = Table_A.A, B = Table_A.B -- Etcetera...
WHEN NOT MATCHED THEN INSERT (A, B) VALUES (Table_A.a, Table_A.B) -- Etcetera...
WHEN NOT MATCHED BY SOURCE THEN DELETE -- If Necessary...
;
顺便说一下,别忘了“;”在末尾。 SQL Server通常不需要它们,但MERGE
会这样做。