Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在SSIS中的表达式中更新并使用变量_Variables_Ssis_Expression - Fatal编程技术网

Variables 在SSIS中的表达式中更新并使用变量

Variables 在SSIS中的表达式中更新并使用变量,variables,ssis,expression,Variables,Ssis,Expression,我试图在SSIS中的表达式内的循环中使用正在更新的变量。我将尽可能地讲清楚。在到达上一个数据流任务(我有一个ODBC源)之前,我将在变量(Return)中获取一些值,我将在[ODBC源].[SqlCommand]中使用这些值,通过第二个脚本任务,我可以检查变量是否以我需要的方式更新。问题在于,在数据流中,表达式考虑了这个变量,但使用了我选择的默认值(“”) 在第一个脚本任务中,我正在更新变量: Dts.Variables[“Return”]。Value=Dts.Variables[“Retur

我试图在SSIS中的表达式内的循环中使用正在更新的变量。我将尽可能地讲清楚。在到达上一个数据流任务(我有一个ODBC源)之前,我将在变量(Return)中获取一些值,我将在[ODBC源].[SqlCommand]中使用这些值,通过第二个脚本任务,我可以检查变量是否以我需要的方式更新。问题在于,在数据流中,表达式考虑了这个变量,但使用了我选择的默认值(“”)

在第一个脚本任务中,我正在更新变量:

Dts.Variables[“Return”]。Value=Dts.Variables[“Return”]。Value+identif


因此,我不知道我是否错过了先前的指示,或者在执行此控制流时会发生什么情况

变量窗口不会在包执行结束时显示变量的值。您需要设置断点,并使用本地窗口“捕获”变量更改前后的值

断点示例

我有一个包含单个脚本任务的包

里面的代码是

    new string strReturn = "NewValue";
    public void Main()
    {
        // TODO: Add your code here
        Dts.Variables["Return"].Value = strReturn;
        Dts.TaskResult = (int)ScriptResults.Success;
    }
代码将my SSIS变量设置为NewValue。为了捕捉这个变量不断变化的值,我将设置断点。要设置断点,请右键单击脚本任务并选择“编辑断点”

设置执行前和执行后断点。保存并执行包。当它到达断点时,它将暂停。第一次暂停是预执行事件,就在脚本即将执行之前。在此暂停期间,您可以在“局部变量”窗口中输入变量的名称

您将看到该值尚未更改。按continue按钮移动到下一个断点PostExecute。现在,脚本任务已经执行。检查本地窗口,您应该会看到该值已更改


请注意,在所有这些变量中,左上角的变量窗口从不显示更新的值。它始终显示“”。必须使用断点才能看到变量值的更改。希望这能帮助你调试你的软件包

您对@[User::Return]的评估是否基于上述屏幕截图未设置?