我有一个包我正在使用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容器中增加变量?
答案 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
不会被更改