共用方式為


執行封裝工作

「執行封裝」工作可讓封裝將其他封裝當作工作流程的一部分執行,以延伸 Integration Services 的企業功能。

您可將「執行封裝」工作用於下列用途:

  • 細分複雜的封裝工作流程。此工作可讓您將工作流程分解成多個封裝,以方便讀取、測試和維護。例如,您若是將資料載入星狀結構描述,就可以建立另一個封裝以擴展每一個維度與事實資料表。

  • 重複使用部分封裝。其他封裝可以重複使用封裝工作流程的各部分。例如,您可以建置可從不同封裝呼叫的資料擷取模組。呼叫擷取模組的每個封裝可以執行不同的資料刪除、篩選或彙總作業。

  • 群組工作單位。工作的單位可以封裝到個別的封裝,並以交易式元件聯結至父封裝的工作流程。例如,父封裝執行附帶封裝,並根據附帶封裝的成功或失敗認可或回復交易。

  • 控制封裝安全性。封裝作者只需要多封裝方案的一部分存取權。您可藉由將封裝分成多個封裝,提供更高的安全性等級,這是因為您可以只將相關封裝的存取權授與給作者。

執行其他封裝的封裝一般稱為父封裝,而父工作流程執行的封裝則稱為子封裝。

「執行封裝」工作可執行儲存在 SQL Servermsdb 資料庫中的封裝,以及儲存在檔案系統中的封裝。此工作使用 OLE DB 連接管理員連接到 SQL Server,並使用檔案連接管理員存取檔案系統。如需詳細資訊,請參閱<OLE DB 連接管理員>和<一般檔案連接管理員>。

「執行封裝」工作也可執行資料庫維護計畫,讓您管理相同 Integration Services 方案中的 SSIS 封裝和資料庫維護計畫。資料庫維護計畫與 SSIS 封裝類似,不過計畫只能包含資料庫維護工作,而且永遠儲存在 msdb 中。如需詳細資訊,請參閱<維護資料庫 (Database Engine)>和<維護工作>。

如果您選擇儲存在檔案系統中的封裝,就必須提供封裝的名稱與位置。封裝可存在於檔案系統中的任何位置,不必與父封裝位在相同資料夾中。

子封裝可在父封裝的處理序中執行,也可在其自己的處理序中執行。在其自己的處理序中執行子封裝需要更多記憶體,但是提供更大彈性。例如,如果子處理序失敗,父處理序可繼續執行。

或者,有時您可能希望父封裝和子封裝當作一個單位一起失敗,或是不要產生其他處理序的額外負擔。例如,如果子處理序失敗,而父封裝處理序中的後續處理取決於子處理序的成功,則子封裝應該在父封裝的處理序中執行。

依預設,「執行封裝」工作的 ExecuteOutOfProcess 屬性會設定為 False,而且子封裝會在與父封裝的相同處理序中執行。如果您將這個屬性設定為 True,就只能偵錯包含有限功能的封裝。若要偵錯您的 SQL Server 版本支援的所有封裝,您必須安裝 Integration Services。

延伸交易

父封裝使用的交易可延伸至子封裝;因此,這兩種封裝執行的工作都能認可或回復。例如,根據子封裝執行的資料庫插入,可以認可或回復父封裝所執行的資料庫插入,反之亦然。如需詳細資訊,請參閱<繼承的交易>。

傳播記錄詳細資料

「執行封裝」工作執行的子封裝不一定會設定為使用記錄,但是子封裝永遠會將記錄的詳細資料轉送給父封裝。如果「執行封裝」工作設定為使用記錄,則此工作會記錄來自子封裝的記錄詳細資料。如需詳細資訊,請參閱<在封裝中實作記錄>。

將值傳遞給子封裝

子封裝通常使用由另一個呼叫它的封裝傳遞給它的值,該封裝一般是其父封裝。使用來自父封裝的值在下列類似狀況中很有用:

  • 將較大工作流程的各個部分指派給不同的封裝。例如,一個封裝每晚下載資料、摘要資料、指派摘要資料值給變數,然後將值傳遞給另一個封裝進行資料的額外處理。

  • 父封裝會動態協調子封裝中的工作。例如,父封裝決定本月的天數,並將該數字指派給變數,然後由子封裝執行該次數的工作。

  • 子封裝需要存取由父封裝動態衍生的資料。例如,父封裝會從資料表擷取資料並將資料列集載入變數,子封裝則會對該資料執行其他作業。

您可以使用封裝組態,使來自父封裝的值可供子封裝使用。Integration Services 提供「父封裝變數」組態的組態類型,用於將值從父封裝傳遞至子封裝。組態建立在子封裝上,並使用父封裝中的變數。

父封裝變數可在「執行封裝」工作的範圍內定義,或是在諸如封裝的父容器中定義。如果有多個名稱相同的變數可用,則會使用在「執行封裝」工作範圍內所定義的變數,或是最接近工作範圍的變數。然後,組態會對應至子封裝中的變數,或是子封裝中的物件屬性。變數也可用在 ActiveX Script 工作、指令碼工作或指令碼元件所用的指令碼中。

如需詳細資訊,請參閱<如何:在子封裝中使用父變數的值>。

其他相關工作

Integration Services 包含執行工作流程作業的工作,例如執行 SQL Server 2000 封裝、可執行檔和批次檔。

如需有關這些工作的詳細資訊,請按下列其中一個主題:

設定執行封裝工作

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

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

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

以程式設計的方式設定執行封裝工作

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

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

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

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