也许这个问题看起来非常基本和基本,但我需要澄清一下。
在SSIS中,以下约束可用于控制组件执行流程:
我有一个非常简单的包用于测试所描述的条件。
进程任务 - 调用返回字符串值和退出代码的批处理文件。
Process Task从批处理文件接收值作为StandardOutputVariable并将其分配给我的用户定义变量User :: BatchExecutionCode
脚本任务 - 用于验证,显示从我的用户变量中获取的值,以便我可以直观地看到并确认期望值已通过
执行SQL任务 - 只需执行SELECT GETDATE()。
我在脚本任务和处理任务之间设置了逻辑AND条件,该任务要求:
当我执行时,最终“执行SQL”任务之前的两个任务都完成,我得到一个可视消息框,显示我的变量值为“0”,但执行只是在之后停止,并且在评估后从不执行最后一个任务
有什么问题?根据所述的执行条件,已满足条件。那么究竟如何评估优先约束。
编辑:为了澄清,在屏幕截图中,@ BatchExecutionCode的值已通过脚本任务传递给User :: Result变量。这就是为什么表达式说@Result ==“0”。无论哪种方式,结果仍然相同
答案 0 :(得分:0)
唯一的原因应该是@Result不等于" 0",您可以通过脚本任务的后执行断点来确认。
您可以使用以下文章确认此变量中的实际内容。
http://www.jasonstrate.com/2011/01/31-days-of-ssis-using-breakpoints-231/