共用方式為


指令碼元件

更新: 2006 年 7 月 17 日

指令碼元件可裝載指令碼,並讓封裝包含及執行自訂指令碼。您可在封裝中使用指令碼元件以達到下列目的:

  • 套用多個轉換至資料,而不使用資料流程中的多個轉換。例如,指令碼可以加總兩個資料行中的值,然後計算總和的平均。
  • 存取現有 .NET 組件中的商務規則。例如,指令碼可以套用商務規則,以指定在 Income 資料行中有效的值範圍。
  • 除了 Integration Services 運算式文法所提供的函數和運算子外,也可以使用自訂公式和函數。例如,使用 LUHN 公式驗證信用卡號碼。
  • 驗證資料行資料並略過包含無效資料的記錄。例如,指令碼可評估合理的郵資金額,並略過金額過高或過低的記錄。

指令碼元件提供簡單快速的方式,用來將自訂函數包含在資料流程中。不過,如果您計劃在多個封裝中重複使用指令碼,應該考慮以程式設計自訂元件,而不要使用指令碼元件。如需詳細資訊,請參閱<Developing a Custom Data Flow Component>。

指令碼元件可當做來源、轉換或目的地使用。此元件支援一個輸入和多個輸出。視元件的使用方式而定,可支援輸入、輸出或兩者。指令碼是由輸入或輸出中的每個資料列所叫用。

  • 如果當做來源使用,指令碼元件可支援多個輸出。
  • 如果當做轉換使用,指令碼元件可支援一個輸入和多個輸出。
  • 如果當做目的地使用,指令碼元件可支援一個輸入。

指令碼元件不支援錯誤輸出。

您可以利用下列方式設定指令碼元件:

  • 選取要參考的輸入資料行。
  • 提供元件執行的指令碼。
  • 指示是否先行編譯指令碼。
  • 提供唯讀和讀取/寫入變數的逗號分隔清單。
  • 加入更多輸出,並加入指令碼將值指派到的輸出資料行。

使用「SSIS 設計師」中的 [指令碼轉換編輯器] 對話方塊時,您只能設定一個輸入。

若要編寫指令碼,請從 [指令碼轉換編輯器] 對話方塊存取 Visual Studio for Applications (VSA) 環境。VSA 包含 Visual Studio .NET 環境的所有標準功能,例如色彩編碼的 Visual Studio 編輯器、IntelliSense 和「物件瀏覽器」。指令碼元件所使用的指令碼會儲存在封裝定義中,而沒有個別的指令碼檔案。

指令碼元件模式

在「SSIS 設計師」中,指令碼元件有兩個模式:中繼資料設計模式與程式碼設計模式。在中繼資料設計模式中,您可以加入和修改指令碼元件輸入和輸出,但是不能編寫程式碼。設定好所有輸入和輸出後,您可以切換到程式碼設計模式編寫指令碼。指令碼元件會自動從輸入和輸出的中繼資料產生基底程式碼。如果您在指令碼元件產生基底程式碼後變更中繼資料,您的程式碼可能無法再編譯,因為更新的基底程式碼可能與您的程式碼不相容。

指令碼

指令碼元件提供 VSA 專案,其中包含自動產生的類別,該類別名為 ScriptMain 且代表元件中繼資料。例如,如果指令碼元件是用來作為具有三個輸出的轉換,則 ScriptMain 會包含每個輸出的方法。ScriptMain 是指令碼的進入點。

Visual Studio for Applications 指令碼開發環境只支援使用 Microsoft Visual Basic .NET 為指令碼語言。

如需有關以程式設計方式編寫指令碼元件的詳細資訊,請參閱<Extending the Data Flow with the Script Component>。如需有關將指令碼元件設為來源、轉換或目的地的特定資訊,請參閱<Developing Specific Types of Script Components>。如需其他範例 (例如示範如何使用指令碼元件的 ODBC 目的地),請參閱<Additional Script Component Examples>。

先行編譯的指令碼

您可以設定指令碼元件以先行編譯指令碼。如果先行編譯指令碼,則指令碼可以更快速地啟動並在 64 位元的環境中執行。不過,當封裝包含先行編譯的指令碼時,其大小會比較大。此外,您無法偵錯已編譯的指令碼。當您決定是否要先行編譯指令碼時,應該考慮這些因素。

依預設,指令碼元件會設定為先行編譯其指令碼,而元件的 PreCompile 屬性則設定為 TruePreCompile 屬性通常會在封裝開發及偵錯期間設定為 False,再於部署封裝之前重設為 True

設定指令碼元件

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

如需有關可以在 [指令碼轉換編輯器] 對話方塊中設定之屬性的詳細資訊,請按下列其中一個主題:

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

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

請參閱

概念

Integration Services 轉換
64 位元電腦上的 Integration Services 考量

其他資源

Extending the Data Flow with the Script Component

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

變更的內容:
  • 指出使用指令碼語言的限制。

2005 年 12 月 5 日

變更的內容:
  • 新增 PreCompile 屬性的描述。