2012-02-10 81 views
2

我有一个包,我正在使用foreach循环来遍历数据库。我传递一个字符串,它循环所有的数据库。一切都很完美,直到这里。在Foreach循环内增加一个变量并使用它-SSIS

我想实现的是对于每个数据库它循环,它应该增加一个变量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容器中的变量?

回答

7

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

递增SSIS变量,你需要做的是这样

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

或变量User::myvariable不会改变

相关问题