在SSIS中将控制流中的变量值传递给数据流

时间:2012-10-08 20:43:49

标签: sql-server-2008 ssis business-intelligence

我有一个相当简单的SSIS包,我无法将控件流中的包范围变量的值成功传递给数据流任务。请看下面的图表:

Control Flow

执行SQL任务从“机器”列表中获取值。这用于控制ForEach循环容器,它运行良好。接下来,脚本任务执行一些数学运算并将单个数字分配给包范围变量(整数类型)。我添加了在循环期间弹出的消息框,以便我可以验证是否正确设置了此变量的值。

最后一个图标是我想要使用变量值的数据流。我有一个简单的脚本任务,其中只包含一个消息框,显示该同一变量的当前值。每次,变量都是我最初在设计器(BIDS)中设置的值。因此,该值不会“传递”到数据流。我已多次验证变量的名称是否正确(包括区分大小写的值)。

这应该很简单,我对此问题感到沮丧。我非常感谢,建议或意见。谢谢!

1 个答案:

答案 0 :(得分:2)

您是如何从脚本任务设置包变量的?它看起来应该是这样的(c#):

DTS.Variables["testVariable"].Value = "some value";

然后从数据流任务中的脚本组件进行测试:

public override void PostExecute()
{
    base.PostExecute();

    MessageBox.Show(Variables.testVariable, "test");
}

我在测试包中做到了这一点并且工作正常。

修改

还要确保将变量添加到脚本任务的属性的ReadWriteVariables部分。