也许这个问题似乎非常基本和基本,但我需要一些澄清。SSIS优先约束如何评估?
在SSIS以下约束可用于控制部件执行流程为:
- 逻辑AND。所有约束必须评估为真。
- 逻辑或。至少有一个约束必须评估为true。
我有一个非常简单的包,我使用来测试所描述的条件。
一个进程任务 - 调用一个返回字符串值和退出代码的批处理文件。
Task从批处理文件作为StandardOutputVariable接收值并将其分配给定义的变量用户:: BatchExecutionCode
我的用户进程脚本任务 - 用于验证,从我的用户变量显示所获取的值,所以我可以直观的看到,并声明该预期值获得通过
执行SQL任务 - 这只是做一个SELECT GETDATE()。
我已经安装脚本任务和流程任务是任务之间逻辑和条件:
- 约束 - 任务执行必须“完成”
- 表达 - @BatchExecutionCode ==“0”
当我执行,前两个任务最后的“执行SQL”任务完成,我得到显示为“0”我的变量值的视觉消息框,但执行只是停止之后,从来没有评估后执行的最后一个任务。
什么问题?根据规定的执行条件,条件已经达到。那么究竟如何评估优先约束。
编辑:为了清楚起见,在屏幕截图@BatchExecutionCode的值已经经由脚本任务传递给用户::结果变量。这就是为什么表达式说@Result ==“0”。无论哪种方式,结果仍然是相同的
你能分享一个打包屏幕的包吗? –
当然,它增加 – Mark
脚本任务是否有任何机会不正确地将值分配给@Result?脚本任务除了赋值之外还有其他任何事情吗? – billinkc