2015-07-10 197 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

回答