【发布时间】:2014-08-08 07:52:38
【问题描述】:
当我从数据源获取一些行时,我应该使用哪种类型的 SSIS 任务,然后在目标中插入新行或更新目标中的行以防它存在。
我正在考虑使用 SQL 任务来获取结果集中的行,然后使用 for 循环容器。但我不知道如何继续下去。
【问题讨论】:
标签: sql-server ssis foreach-loop-container
当我从数据源获取一些行时,我应该使用哪种类型的 SSIS 任务,然后在目标中插入新行或更新目标中的行以防它存在。
我正在考虑使用 SQL 任务来获取结果集中的行,然后使用 for 循环容器。但我不知道如何继续下去。
【问题讨论】:
标签: sql-server ssis foreach-loop-container
插入/更新的顺序(没有删除!)非常简单: 加载你的源(最有可能是oleDB)和你的目的地以及源(再次,最有可能是oleDB)
在 dest 上合并加入。表键
条件拆分,一侧是源中存在的行(即在连接中找到匹配项),另一侧是其余的。
现有行通过更新查询转到 OLE DB 命令
新行转到 ole DB 目标(或您的目标的等效项)
有关包含删除的更复杂的方法,请参阅this awesome blog
【讨论】:
你可以使用Lookup task:
【讨论】: