增加Foreach循环中的变量并使用它-SSIS

时间:2012-02-10 01:51:12

标签: ssis foreach

我有一个包我正在使用foreach循环来遍历数据库。我传递一个字符串,它循环所有数据库。到此为止,一切都很完美。

我想要实现的是,对于它循环的每个数据库,它应该将变量递增1.假设我必须遍历总共5个数据库。并且包级别变量(myvariable = 24)被声明为24.对于它循环的每个数据库,它应该将变量增加1。

为此,我在foreachloop容器中创建了一个脚本任务。 ReadWriteVariables为myvariable。在脚本编辑器中。我有以下代码

public void Main()
        {
     int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString());
     varbl++
       }

然后我将递增的值传递给storedprocedure。但它没有增加。它仍然采用默认值24.任何想法如何在foreachloop容器中增加变量?

1 个答案:

答案 0 :(得分:9)

您创建的变量varbl仅存在于脚本上下文中。

要增加SSIS变量,您需要执行类似

的操作
public void Main()
{
    int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString());
    varbl++;
    Dts.Variables["User::myvariable"].Value = varbl;
}

或变量User::myvariable不会被更改