共用方式為


腳本元件

腳本元件會裝載腳本,並讓封裝包含和執行自定義腳本程序代碼。 您可以在套件中使用文稿元件,以達到下列目的:

  • 將多個轉換套用至數據,而不是在數據流中使用多個轉換。 例如,腳本可以將兩個欄位中的數值相加,然後計算總和的平均值。

  • 存取現有 .NET 元件中的商務規則。 例如,腳本可以套用商務規則,以指定數據行中 Income 有效值的範圍。

  • 除了 Integration Services 運算式文法所提供的函式和運算子之外,還使用自定義公式和函式。 例如,驗證使用 LUHN 公式的信用卡號碼。

  • 驗證數據行數據,並略過包含無效數據的記錄。 例如,腳本可以評估郵資金額的合理性,並略過具有極高或低金額的記錄。

腳本元件提供簡單且快速的方式,將自定義函式包含在數據流中。 不過,如果您打算在多個套件中重複使用腳本程序代碼,您應該考慮設計自定義元件,而不是使用腳本元件。 如需詳細資訊,請參閱 開發自定義數據流元件

備註

如果腳本元件包含嘗試讀取 NULL 資料行值的腳本,當您執行封裝時,腳本元件會失敗。 建議您先使用 IsNull 方法來判斷數據行是否為 NULL,然後再嘗試讀取數據行值。

腳本元件可以做為來源、轉換或目的地。 此元件支援一個輸入和多個輸出。 視元件的使用方式而定,它支援輸入或輸出或兩者。 輸入或輸出中的每個數據列都會叫用腳本。

  • 如果使用 做為來源,腳本元件支援多個輸出。

  • 如果用作轉換,腳本元件支援一個輸入和多個輸出。

  • 如果用作目的地,腳本元件支援一個輸入。

文稿元件不支援錯誤輸出。

決定文稿元件是套件的適當選擇之後,您必須設定輸入和輸出、開發元件所使用的腳本,以及設定元件本身。

瞭解腳本元件模式

在 SSIS 設計工具中,腳本元件有兩種模式:元數據設計模式和程式代碼設計模式。 在元數據設計模式中,您可以新增和修改腳本元件輸入和輸出,但無法撰寫程式代碼。 設定所有輸入和輸出之後,您可以切換到程式代碼設計模式來撰寫腳本。 文本元件會自動從輸入和輸出的元數據產生基底程序代碼。 如果您在腳本元件產生基底程式代碼之後變更元數據,您的程式代碼可能不再編譯,因為更新的基底程式代碼可能與程式代碼不相容。

撰寫元件使用的腳本

腳本元件會使用 Microsoft Visual Studio Tools for Applications (VSTA) 作為您撰寫腳本的環境。 您可以從 文稿轉換編輯器存取 VSTA。 如需詳細資訊,請參閱腳本轉換編輯器(腳本頁面)。

腳本元件提供 VSTA 專案,其中包含代表元件元數據的自動產生類別 ScriptMain。 例如,如果使用腳本元件做為具有三個輸出的轉換,ScriptMain 會包含每個輸出的方法。 ScriptMain 是腳本的進入點。

VSTA 包含 Visual Studio 環境的所有標準功能,例如色彩編碼的 Visual Studio 編輯器、IntelliSense 和對象瀏覽器。 腳本元件使用的腳本會儲存在封裝定義中。 當您設計封裝時,腳本程式代碼會暫時寫入項目檔。

VSTA 支援 Microsoft Visual C# 和 Microsoft Visual Basic 程式設計語言。

如需如何撰寫腳本元件的詳細資訊,請參閱 使用腳本元件擴充數據流。 如需如何將腳本元件設定為來源、轉換或目的地的詳細資訊,請參閱 開發特定類型的腳本元件。 如需其他範例,例如示範腳本元件的 ODBC 目的地,請參閱 其他腳本元件範例

備註

不同於舊版,您可以在其中指出腳本是否已先行編譯,所有腳本都會在 SQL Server 2008 Integration Services (SSIS) 和更新版本中先行編譯。 先行編譯腳本時,語言引擎不會在運行時間載入,而且套件執行速度會更快。 不過,先行編譯的二進位檔會耗用大量的磁碟空間。

設定腳本元件

您可以使用下列方式設定文稿元件:

  • 選取要參考的輸入數據行。

    備註

    當您使用 SSIS 設計工具時,只能設定一個輸入。

  • 提供元件執行的腳本。

  • 指定文稿語言。

  • 提供唯讀和讀取/寫入變數的逗號分隔清單。

  • 新增更多輸出,並新增腳本指派的輸出列。

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

在設計工具中設定文本元件

如需您可以在 [ 文稿轉換編輯器 ] 對話框中設定之屬性的詳細資訊,請按下列其中一個主題:

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

以程式設計方式設定文本元件

如需您可以在 [ 屬性 ] 視窗中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:

如需有關如何設定屬性的詳細資訊,請按下列其中一個主題:

Integration Services 轉換

使用腳本元件擴充數據流