2015-07-10 134 views
0

enter image description here也许这个问题似乎非常基本和基本,但我需要一些澄清。SSIS优先约束如何评估?

在SSIS以下约束可用于控制部件执行流程为:

  • 逻辑AND。所有约束必须评估为真。
  • 逻辑或。至少有一个约束必须评估为true。

我有一个非常简单的包,我使用来测试所描述的条件。

一个进程任务 - 调用一个返回字符串值和退出代码的批处理文件。

Task从批处理文件作为StandardOutputVariable接收值并将其分配给定义的变量用户:: BatchExecutionCode

我的用户进程

脚本任务 - 用于验证,从我的用户变量显示所获取的值,所以我可以直观的看到,并声明该预期值获得通过

执行SQL任务 - 这只是做一个SELECT GETDATE()。

我已经安装脚本任务和流程任务是任务之间逻辑和条件:

  1. 约束 - 任务执行必须“完成”
  2. 表达 - @BatchExecutionCode ==“0”

当我执行,前两个任务最后的“执行SQL”任务完成,我得到显示为“0”我的变量值的视觉消息框,但执行只是停止之后,从来没有评估后执行的最后一个任务。

什么问题?根据规定的执行条件,条件已经达到。那么究竟如何评估优先约束。

编辑:为了清楚起见,在屏幕截图@BatchExecutionCode的值已经经由脚本任务传递给用户::结果变量。这就是为什么表达式说@Result ==“0”。无论哪种方式,结果仍然是相同的

+0

你能分享一个打包屏幕的包吗? –

+0

当然,它增加 – Mark

+0

脚本任务是否有任何机会不正确地将值分配给@Result?脚本任务除了赋值之外还有其他任何事情吗? – billinkc

回答