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

use*_*670 3 foreach ssis

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

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

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

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

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

cfr*_*rag 9

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

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

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

或者变量User::myvariable不会改变