SSIS 2008行计数转换 - 行计数返回0

时间:2011-03-10 06:48:01

标签: sql sql-server-2008 ssis

这应该相当简单,但我不知道为什么当我在数据流任务中使用ROW COUNT转换时,我将Row Count作为零。我创建了一个包含范围的变量(NoOfRecords)。

在行计数转换中将变量名设置为变量NoOfRecords。 Image1

使用派生列分配行计数。Image2

包运行成功并显示记录数265 Image3

但Derived列显示记录计数为0而不是265行。 enter image description here

4 个答案:

答案 0 :(得分:3)

在“行计数”之后,在“聚合任务”属性的“操作”选项卡中添加“聚合塔克斯”并选择“计数”选项。 然后,您可以使用行计数变量进行进一步操作,其中包含输入文件的总行数。

答案 1 :(得分:2)

在行传递后处理行计数。

您在通过“派生列”步骤时将变量添加到每一行,但此时,变量尚未更新(因为它在所有行都通过后发生) - 因此值0是正确的。

你 - 可以通过在派生之前使用异步任务来实现这一目标(但我不确定这是否会起作用,它只是突然出现在我的脑海中)。在Derived之前添加Sort或Aggregate步骤,然后重试。

答案 2 :(得分:0)

我在查询中将其用作获取行数的有效方法:

将(所有SnapshotDate)超过()计为nRowCount

答案 3 :(得分:0)

这是记录适用于我的情况的行的成功技术。 场景是我要记录在表之间迁移的行。在退出数据流之前,不会填充RowCount。 [控制流]    1.数据流任务        一种。读取原始数据-源代码控制        b。添加RowCount转换。将a链接到b。           右键单击RowCount并映射到UserVariable(int64)        C。添加目标控件以加载表。        d。将b链接到c。    2.将执行SQL任务添加到ControlFlow。右键单击,编辑         INSERT SQL语句:插入LogTable(rowcount)值(?)         参数映射         可变方向数据类型ParameterName ParameterSize         用户:: RowCount输入长0 -1