【问题标题】:SSIS Task to insert or update a row插入或更新行的 SSIS 任务
【发布时间】:2014-08-08 07:52:38
【问题描述】:

当我从数据源获取一些行时,我应该使用哪种类型的 SSIS 任务,然后在目标中插入新行或更新目标中的行以防它存在。

我正在考虑使用 SQL 任务来获取结果集中的行,然后使用 for 循环容器。但我不知道如何继续下去。

【问题讨论】:

    标签: sql-server ssis foreach-loop-container


    【解决方案1】:

    插入/更新的顺序(没有删除!)非常简单: 加载你的源(最有可能是oleDB)和你的目的地以及源(再次,最有可能是oleDB)

    在 dest 上合并加入。表键

    条件拆分,一侧是源中存在的行(即在连接中找到匹配项),另一侧是其余的。

    现有行通过更新查询转到 OLE DB 命令

    新行转到 ole DB 目标(或您的目标的等效项)

    有关包含删除的更复杂的方法,请参阅this awesome blog

    【讨论】:

      【解决方案2】:

      你可以使用Lookup task:

      • 在匹配时,您通过 OLE DB 命令 执行 UPDATE 语句
      • 在通过OLE DB 目标任务 在目标中添加行时出错

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多