SSIS-更新主键已存在的行的几列

SSIS- Update few columns of a row for which the primary key already exists

下面是一个例子,可以更好地解释我的场景。我的数据库 table 有以下列 -1 列:Operating_ID(这是主键) 第 -2 列:姓名 第 -3 列:Phone 第-4 列:地址 第 -5 列:开始日期 第 -6 列:结束日期

第 1、2、3、4 列的值来自一个提取,每天使用 SSIS 数据流任务将此提取推送到数据库

第 5 列和第 6 列的值是用户从 Web 应用程序输入并保存到数据库中的。

现在在 SSIS 进程中,如果主键(即第 1 列)已经存在,我需要更新第 2、3、4 列,而不是抛出违反主键的错误。 首先我考虑替换但是删除用户输入的数据列 4,5。 我想将数据保留在第 4、5 列中,并在第 1 列已经存在时更新第 2、3、4 列。

查找 Operating_ID。将该查找从 "FAIL ON NOT FOUND" 更改为 "REDIRECT ROWS TO NO MATCH"

如果未找到匹配项,请转至 INSERT

如果找到匹配项,请转至 UPDATE。您可以使用 运行 OLAP 命令进行更新,但如果是大量数据,您最好放入 table,然后执行 UPDATE with a JOIN

这就是我会做的。我会将所有数据放在暂存区 table。然后我将使用数据流来插入新记录,并且该数据流的源将是暂存 [​​=15=],带有引用产品 table 的不存在子句。

然后我会在控制流中使用执行 SQL 任务来更新现有行的数据。