Variables 在SSIS中的表达式中更新并使用变量
我试图在SSIS中的表达式内的循环中使用正在更新的变量。我将尽可能地讲清楚。在到达上一个数据流任务(我有一个ODBC源)之前,我将在变量(Return)中获取一些值,我将在[ODBC源].[SqlCommand]中使用这些值,通过第二个脚本任务,我可以检查变量是否以我需要的方式更新。问题在于,在数据流中,表达式考虑了这个变量,但使用了我选择的默认值(“”) 在第一个脚本任务中,我正在更新变量: Dts.Variables[“Return”]。Value=Dts.Variables[“Return”]。Value+identifVariables 在SSIS中的表达式中更新并使用变量,variables,ssis,expression,Variables,Ssis,Expression,我试图在SSIS中的表达式内的循环中使用正在更新的变量。我将尽可能地讲清楚。在到达上一个数据流任务(我有一个ODBC源)之前,我将在变量(Return)中获取一些值,我将在[ODBC源].[SqlCommand]中使用这些值,通过第二个脚本任务,我可以检查变量是否以我需要的方式更新。问题在于,在数据流中,表达式考虑了这个变量,但使用了我选择的默认值(“”) 在第一个脚本任务中,我正在更新变量: Dts.Variables[“Return”]。Value=Dts.Variables[“Retur
因此,我不知道我是否错过了先前的指示,或者在执行此控制流时会发生什么情况变量窗口不会在包执行结束时显示变量的值。您需要设置断点,并使用本地窗口“捕获”变量更改前后的值 断点示例 我有一个包含单个脚本任务的包 里面的代码是
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]的评估是否基于上述屏幕截图未设置?