SSIS任务用于插入或更新行

时间:2014-08-08 07:52:38

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

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

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

2 个答案:

答案 0 :(得分:2)

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

合并加入dest。表键

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

现有行转到带有更新查询的OLE DB命令

新行转到ole DB目的地(或等效于您的目的地)

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

答案 1 :(得分:2)

您可以使用Lookup task

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