通过 SSIS 执行任务更新的记录行

Record rows updated through SSIS execute task

我有一个连接到 SourceDB1 的包并执行更新 DestDB2 的更新语句。现在我有很多这样的源数据库和目标数据库,它们具有相似的结构。为此,我有每个循环容器,其中放置了 execute SQL 任务。现在,由于 sourceDB 连接不同,我创建了一个名为 SourceConnString 的变量。同样,更新查询也在名为 UpdateVariable 的变量中。我创建了 UpdateVariable 因为源和目标是两个不同的数据库。

现在我需要保存每次执行sql任务中更新的记录数。记录计数应插入到 table 或平面文件中,以容易的为准。

我看到了如何在不使用变量更新的情况下执行此操作的教程。在我的情况下,有什么办法可以 return 行数。

您可以使用 ExecValueVariable 属性,在执行 SQL 任务中它存储受 SQL 命令影响的记录数。您必须在 ExecValueVariable 属性 指定变量名称,或者从下拉列表中选择它,如下所示。

您可以在 UPDATE 查询之后使用带有 @@ROWCOUNT 的 Select 查询,如下所示:

UPDATE SomeTable Set SomeColumn = SomeValue;

SELECT @@RowCount as NumberOfAffectedRecords

并使用单行结果集来获取值。

以下文章包含分步教程

我做了以下事情。创建了一个新变量“Newupquery”,下面的代码片段是分配给这个变量的值,它在执行 SQl 任务中使用。


DECLARE @UpdateRowCnt INT;
update countcheck
set [Base Unit of Measure] = 'PCS-1'
where [Base Unit of Measure] = 'PCS';
SELECT @UpdateRowCnt=@@ROWCOUNT;
Select @UpdateRowCnt

上面的执行SQl任务被执行,结果集被设置为变量“UpdateRowCount”。

下一步是另一个执行SQL任务,它将变量UpdateRowCount的值插入到日志table 在舞台服务器中。使用 Execute SQl Task.

中的参数设置将变量 UpdateRowCount 的值传递给插入语句