優先順序條件約束

優先順序條件約束可將封裝中的可執行檔、容器和工作連結至控制流程,並指定判斷可執行檔是否執行的條件。可執行檔可以是「For 迴圈」容器、「Foreach 迴圈」容器、「時序」容器、工作或事件處理常式。事件處理常式也可使用優先順序條件約束,以將其可執行檔連結至控制流程。

優先順序條件約束會連結兩個可執行檔:優先順序可執行檔和受條件約束的可執行檔。優先順序可執行檔在條件約束可執行檔之前執行,且優先順序可執行檔的執行結果可以決定條件約束可執行檔是否執行。下圖顯示了由優先順序條件約束連結的兩個可執行檔。

以優先順序條件約束連接的可執行檔

除僅封裝單一工作的工作主機容器之外,Integration Services 的巢狀容器架構會啟用所有容器,用以包含每個都具有其各自控制流程的其他容器。「For 迴圈」容器、「Foreach 迴圈」容器和「時序」容器可以包含多個工作和其他容器,而工作和其他容器進而可以包含多個工作和容器。例如,具有「指令碼」工作和「時序」容器的封裝具有連結「指令碼」工作和「時序」容器的優先順序條件約束。「時序」容器包括三個「指令碼」工作,且其優先順序條件約束會將這三個「指令碼」工作連結至一個控制流程。下圖顯示具有兩個巢狀層級之封裝中的優先順序條件約束。

封裝中的優先順序條件約束

因為封裝位於 SSIS 容器架構的最上層,所以優先順序條件約束無法連結多個封裝;但是,您可以將「執行封裝」工作加入封裝,然後間接地將其他封裝連結至控制流程。

您可以利用下列方式設定優先順序條件約束:

  • 指定評估作業。優先順序條件約束同時使用條件約束值和運算式,或使用其中之一,來決定條件約束可執行檔是否執行。

  • 如果優先順序條件約束使用執行結果,則您可以將執行結果指定為成功、失敗或完成。

  • 如果優先順序條件約束使用評估結果,則您可以提供評估為布林的運算式。

  • 指定只評估優先順序條件約束,還是同時評估套用至條件約束可執行檔的其他條件約束。

評估作業

Integration Services 提供下列評估作業:

  • 僅使用優先順序可執行檔之執行結果的條件約束,以決定條件約束可執行檔是否執行。優先順序可執行檔的執行結果可以是完成、成功或失敗。

  • 運算式,對其進行評估以決定條件約束可執行檔是否執行。如果運算式評估為 true,則條件約束可執行檔會執行。

  • 運算式與條件約束,此條件約束會組合優先順序可執行檔之執行結果與評估運算式之傳回結果兩者的需求。

  • 運算式或條件約束,此條件約束會使用優先順序可執行檔的執行結果或評估運算式的傳回結果。

運算式必須為有效的 SSIS 運算式,並且它可以包括函數、運算子、系統和自訂變數。如需詳細資訊,請參閱<Integration Services 運算式參考>和<Integration Services 變數>。

執行結果

優先順序條件約束可以只使用下列執行結果,或與運算式一起使用。

  • 完成,只要求優先順序可執行檔完成 (無須考慮結果),就可執行條件約束可執行檔。

  • 成功,要求優先順序可執行檔必須成功完成,才可執行條件約束可執行檔。

  • 失敗,要求優先順序可執行檔失敗時,才可執行條件約束可執行檔。

[!附註]

只有是同一 Precedence Constraint 集合之成員的優先順序條件約束,才可以使用邏輯 AND 條件將其分組。例如,您無法結合來自兩個「Foreach 迴圈」容器的優先順序條件約束。

設定優先順序條件約束

您可透過「SSIS 設計師」或以程式設計的方式來設定屬性。

如需有關可在「SSIS 設計師」中設定之屬性的詳細資訊,請按一下下列主題:

如需有關如何在「SSIS 設計師」中設定這些屬性的詳細資訊,請按一下下列主題之一:

以程式設計方式設定優先順序條件約束

如需有關以程式設計方式設定這些屬性的詳細資訊,請按下列主題:

外部資源

social.technet.microsoft.com 上的技術文章:SSIS 運算式範例

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文章、範例、影片,以及社群的精選解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。