如果第二个表已经包含该数据,则将数据从一个表复制到另一个表

时间:2016-06-14 11:57:29

标签: sql sql-server ssis

只有当table1.Col1!= table2.col1时,任何人都可以帮我写一个MS SQL查询来将行从一个表复制到另一个表。

我正在制作一个SSIS包来执行此过程,因此与其相关的方法将非常有用。

2 个答案:

答案 0 :(得分:1)

1)Slowly Changing Dimension数据流任务。

2)使用Lookup

3)使用Merge

答案 1 :(得分:1)

最简单的方式(对我来说):可选择加入(LEFT OUTER JOIN)到目标表(您正在加载的表),并使用WHERE确认加入失败:

INSERT INTO dbo.MYTARGETTABLE (TARG_COL1, TARG_COL2)
SELECT SRC.[SRC_COL1], SRC.[SRC_COL2]
FROM dbo.MYSOURCETABLE  SRC
    LEFT OUTER JOIN dbo.MYTARGETTABLE  TARG
        ON TARG.[TARG_COL1] = SRC.[SRC_COL1]
WHERE SRC.[SRC_COL1] IS NOT NULL
----this column is only null if the join failed: 
AND TARG.[TARG_COL1] IS NULL

这当然假设您加入的列中没有有效的NULL。