UPSIS在SSIS

Raj*_*ore 5 sql-server ssis upsert sql-server-2008

我正在编写一个在SQL Server 2008上运行的SSIS包.你如何在SSIS中进行UPSERT?

IF KEY NOT EXISTS
  INSERT
ELSE
  IF DATA CHANGED
    UPDATE
  ENDIF
ENDIF

Joh*_*ers 10

请参阅SQL Server 2008 - 使用SSIS合并.我已经实现了这样的东西,而且非常简单.只需使用BOL页面使用MERGE插入,更新和删除数据就足以让我前进.

  • kimballgroup 链接已失效。 (2认同)

wp7*_*8de 6

除了基于 T-SQL 的解决方案(这甚至没有标记为 / ),您还可以使用 SSIS 数据流任务和此处(和其他地方)所述的合并连接。

在此处输入图片说明

关键部分是已排序源的合并连接中的完整外部连接(如果您只想插入/更新而不是删除左外部连接也适用)。

在此处输入图片说明

然后是条件拆分以了解下一步要做什么:插入目标(这也是我在这里的源)、更新它(通过 SQL 命令)或从中删除(再次通过 SQL 命令)。

  1. INSERT:如果仅在源上找到 gid(左)
  2. UPDATE 如果源和目标上都存在 gid
  3. DELETE:如果在源中找不到 gid 但在目标中存在(右)

在此处输入图片说明