使用SSIS Rowcount更新SQL表

时间:2012-06-20 13:46:31

标签: ssis

我有一个平面文件,我将其保存到SQL表中。我想计算插入的行并将计数写入另一个表。

1 个答案:

答案 0 :(得分:7)

简单的答案是创建一个SSIS变量并将RowCount转换放到数据流上。

创建变量

在“控制流”上,单击后台。不要单击任何任务,否则您的变量将在错误的范围内创建(此警告不适用于2012)。右键单击并选择“变量”。在“变量”窗口中,单击“添加”按钮并将其命名为RowCounts,数据类型为Int32(除非您需要Int64(超过2M行))

添加行计数转换

在数据流中,在数据源之后添加行计数转换。配置它以使用我们上面创建的变量。结果数据流可能看起来像这样

row count data flow

值得注意的是,行计数组件不会将行计数分配到@User :: RowCount变量,直到数据流完成后

保存行计数值

数据流完成后,您需要使用控制流中的执行SQL任务将值写入表中。

control flow

执行SQL任务看起来像这样,具体取决于您的表定义为什么。

INSERT INTO 
    dbo.RowCounts
(
    rowcounts
) 
SELECT 
    ? AS rowcounts

在“参数映射”选项卡中,它看起来像

User::RowCount  Input  Long  0  -1