ssis - 使用 SSIS 行数更新 SQL 表

标签 ssis

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

最佳答案

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

创建变量

在控制流上,单击背景。不要单击任何任务,否则您的变量将在错误的范围内创建(此警告不适用于 2012)。右键单击并选择变量。在Variables窗口,点击Add按钮,命名为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

关于ssis - 使用 SSIS 行数更新 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121049/

相关文章:

c# - 使用 SSIS 数据流任务从平面文件源以编程方式派生列

sql-server - SSIS 条件拆分未按预期工作

c# - 访问 Int 变量时 SSIS 出现异常

ssis - 我可以在 PostExecute 的 SSIS 脚本组件中向输出缓冲区添加行吗?

c# - 将用户参数传递给 SSIS 包

sql - 如何将管道作为管道分隔文件中的数据处理

excel - 具有可变 excel 连接管理器的 SSIS

c# - System.InvalidCastException:无法将类型为“System.Object”的对象转换为类型为“System.IO.StreamWriter”

sql-server - SQL Server BIDS、SSIS 聚合和分组依据

oracle - SSIS AdoNet ODP 托管连接问题,其中表格未显示在下拉列表中