使用SSIS Rowcount更新SQL表

Lor*_*ion 3 ssis

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

bil*_*nkc 7

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

创建一个变量

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

添加行计数转换

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

行计数数据流

值得注意的是,行计数组件不分配行数到@user ::行数变量,直到它是重要的数据流完成.

保存行计数值

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

控制流

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

INSERT INTO 
    dbo.RowCounts
(
    rowcounts
) 
SELECT 
    ? AS rowcounts
Run Code Online (Sandbox Code Playgroud)

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

User::RowCount  Input  Long  0  -1
Run Code Online (Sandbox Code Playgroud)