共用方式為


優先順序條件約束

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

優先順序條件約束會連結兩個可執行檔:優先順序可執行檔和受限制的可執行檔。 優先順序可執行檔會在受限制的可執行檔之前執行,而優先順序可執行檔的執行結果可能會判斷受限制的可執行檔是否執行。 下圖顯示由優先順序條件約束連結的兩個可執行檔。

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

在沒有分支的線性控制流程中,僅由優先順序約束來控制工作執行的順序。 如果控制流程分支,Integration Services 執行時引擎會決定緊接在分支後的任務和容器之間的執行順序。 運行時間引擎也會決定控制流程中未連接工作流程之間的執行順序。

Integration Services 的巢狀容器架構允許所有容器(封裝單一工作的工作主機容器除外)包含其他具有自己控制流程的容器。 For 循環、Foreach 循環和序列容器可以包含多個工作和其他容器,而其他容器又可以包含多個工作和容器。 例如,具有腳本工作和時序容器的套件具有連結腳本工作和時序容器的優先順序條件約束。 Sequence 容器包含三個腳本工作,其優先順序條件約束會將三個腳本工作連結至控制流程。 下圖顯示具有兩層巢狀的封裝中的前置約束。

封裝中優先順序限制

由於封裝位於 SSIS 容器階層的頂端,因此優先順序條件約束無法連結多個套件;不過,您可以將執行封裝工作新增至封裝,並間接將另一個套件連結至控制流程。

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

  • 指定評估作業。 優先順序條件約束會使用條件約束值、表達式、兩者或兩者來判斷限制可執行檔是否執行。

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

  • 如果優先順序條件約束使用評估結果,您可以提供評估為布爾值的表達式。

  • 指定優先順序條件約束是否需單獨評估,或與套用至受限制可執行檔的其他條件約束一同評估。

評估作業

Integration Services 提供下列評估作業:

  • 條件約束,僅使用優先順序可執行檔的執行結果來判斷受限制的可執行檔是否執行。 優先順序可執行檔的執行結果可以是完成、成功或失敗。 這是預設作業。

  • 評估為判斷受限制可執行檔是否執行的表達式。 如果表達式評估為 true,則會執行受限制的可執行檔。

  • 表達式與限制條件,結合具有優先次序的可執行程式的執行結果需求,以及評估表達式的回傳結果。

  • 表達式或條件約束,其使用優先順序可執行檔的執行結果或評估表達式的傳回結果。

SSIS 設計工具會使用色彩來識別優先順序條件約束的類型。 Success 條件約束為綠色、失敗條件約束為紅色,而完成條件約束為藍色。 若要在顯示條件約束類型的 SSIS 設計工具中顯示文字標籤,您必須設定 SSIS 設計工具的輔助功能功能。

表達式必須是有效的 SSIS 運算式,而且可以包含函式、運算子和系統和自定義變數。 如需詳細資訊,請參閱 Integration Services (SSIS) 表達式Integration Services (SSIS) 變數

執行結果

優先順序條件約束可以單獨使用下列執行結果,或搭配表達式使用。

  • 完成只需要優先順序可執行檔已完成,而不考慮結果,才能執行受限制的可執行檔。

  • 成功需要優先順序可執行檔必須順利完成,限制可執行檔才能執行。

  • 優先順序可執行檔失敗時,受限的可執行檔才能執行。

備註

只有屬於相同 Precedence Constraint 集合成員的優先順序條件約束,才能在邏輯 AND 條件中分組。 例如,您無法結合兩個 Foreach 迴圈容器的優先順序條件約束。

優先約束條件的配置

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

如需您可以在 SSIS 設計工具中設定之屬性的相關信息,請參閱 優先順序條件約束編輯器

如需以程式設計方式設定這些屬性的相關信息,請參閱 PrecedenceConstraint

如需如何在 SSIS 設計工具中設定這些屬性的詳細資訊,請按下列其中一個主題:

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

另請參閱

將表達式新增至優先順序條件約束多個優先順序條件約束