也許這個問題似乎非常基本和基本,但我需要一些澄清。SSIS優先約束如何評估?
在SSIS以下約束可用於控制部件執行流程爲:
- 邏輯AND。所有約束必須評估爲真。
- 邏輯或。至少有一個約束必須評估爲true。
我有一個非常簡單的包,我使用來測試所描述的條件。
一個進程任務 - 調用一個返回字符串值和退出代碼的批處理文件。
Task從批處理文件作爲StandardOutputVariable接收值並將其分配給定義的變量用戶:: BatchExecutionCode
我的用戶進程腳本任務 - 用於驗證,從我的用戶變量顯示所獲取的值,所以我可以直觀的看到,並聲明該預期值獲得通過
執行SQL任務 - 這只是做一個SELECT GETDATE()。
我已經安裝腳本任務和流程任務是任務之間邏輯和條件:
- 約束 - 任務執行必須「完成」
- 表達 - @BatchExecutionCode ==「0」
當我執行,前兩個任務最後的「執行SQL」任務完成,我得到顯示爲「0」我的變量值的視覺消息框,但執行只是停止之後,從來沒有評估後執行的最後一個任務。
什麼問題?根據規定的執行條件,條件已經達到。那麼究竟如何評估優先約束。
編輯:爲了清楚起見,在屏幕截圖@BatchExecutionCode的值已經經由腳本任務傳遞給用戶::結果變量。這就是爲什麼表達式說@Result ==「0」。無論哪種方式,結果仍然是相同的
你能分享一個打包屏幕的包嗎? –
當然,它增加 – Mark
腳本任務是否有任何機會不正確地將值分配給@Result?腳本任務除了賦值之外還有其他任何事情嗎? – billinkc