SSIS - 包变量未初始化

时间:2016-02-17 11:25:11

标签: ssis

我有一个执行SQL任务。查询表后,此任务获取记录数。

我正在使用的查询是

DECLARE @RowCount INT = 
  (SELECT COUNT(FUND_STATUS) AS [Fund Status]
                              FROM dbo.FundPrice
                              WHERE fund_status != 'EXPIRED')

当我尝试打开构建查询时,它表示不支持Declare语句,但该任务执行成功。我创建了一个名为RowCount的包变量。

我在执行脚本任务中设置了映射,使得变量名称为User:RowCount,Direction为Output,DataType为LONG,Parameter = @RowCount

然后我创建了一个脚本任务。在脚本任务中,我正在阅读包变量

 var rowCount = Dts.Variables["RowCount"].Value;

但是,当我在调试模式下运行包时,rowcount的值为0,尽管表中有1000行与查询匹配。有人能告诉我吗 问题是什么?

1 个答案:

答案 0 :(得分:2)

这张你工作的照片将是

enter image description here 首先:在您的数据流中添加新的 DataFlow 添加您的source table并添加Compenent Row Count,如下图所示

enter image description here

其次:双击Row Count Componentthe component properties tab转到variable name并添加variable,如下图所示 enter image description here

第三:在Script Component双击并选择variable,如下图所示

enter image description here

最后:点击Edit Scriptmain Method write this code

内部
MessageBox.Show(Dts.Variables["User::RowCount"].Value.ToString());

有关详细信息,请参见下图:

enter image description here