我在数据流任务中进行了行计数转换,并且此数据流任务位于“每个循环”容器中。因此,当我运行该程序包时,我只会得到一个文件的行数,而不是所有文件的行数。有人可以帮助我吗
答案 0 :(得分:1)
您可以使用脚本任务来执行此操作。首先创建另一个SSIS变量,该变量将存储Foreach循环所有迭代的总数。之后,在循环内的“数据流任务”之后放置一个“脚本任务”。将保存每次迭代的行计数的变量添加为ReadOnlyVariable
,并将变量存储所有迭代的总数在ReadWriteVariables
字段中。下面的示例使用C#通过向当前迭代(TotalCount
)的变量中添加行数来更新总行数变量(CurrentInterationCount
)的值。
int currentRows = Convert.ToInt32(Dts.Variables["User::CurrentInterationCount"].Value.ToString());
int totalRows = Convert.ToInt32(Dts.Variables["User::TotalCount"].Value.ToString());
Dts.Variables["User::TotalCount"].Value = currentRows + totalRows;
答案 1 :(得分:1)
Expression Task使用Expression Builder创建并评估在运行时设置变量值的表达式
在您的sis软件包中添加2个变量:
@[User::TotalRowCount]
:存储总数@[User::RowCount]
:用于行数转换在Foreach循环容器内添加具有以下表达式的 Expression Task :
@[User::TotalRowCount] = @[User::TotalRowCount] + @[User::RowCount]
参考