SSIS比较表内容并更新另一个

时间:2015-02-10 10:55:08

标签: sql-server ssis lookup

我想比较两个表,一个来自Access Mdb&一个SQL服务器表是SSIS。

目标是在存在差异时截断表并将其填充MDB源并在另一个表中更新版本。

我试图通过查找来完成它,但版本随行数增加而且应该是一次。

需要使用2个不同的表执行操作。

1 个答案:

答案 0 :(得分:2)

  

即使我有10号,我怎么能只在更新后执行一次   匹配输出行?

SSIS提供OLEDB命令,用于在数据流中执行管道更新。但是,正如您在问题中暗示的那样,每行执行一次UPDATE命令。

执行批量级更新的更有效方法是:

  1. 截断UPDATE登台表
  2. 检测数据流中已更改的行
  3. 将更改的行直接更改为目标并将数据存储在临时表中
  4. 在数据流之后添加执行SQL命令,该命令将执行从登台表到目标表的更新。即。

    UPDATE T
    SET T.Column1 = S.Column1
        , T.Column2 = S.Column2
    FROM MyTarget T 
        JOIN MySource S ON T.id = S.id
    
  5. Control流程如下所示:

    enter image description here

    编辑:编辑步骤和图像以添加截断登台表的步骤。