腳本工作提供程式碼,以執行在 SQL Server Integration Services 的內建工作和轉換中無法使用的功能。 腳本任務還可以在一個腳本中結合多個函式,而不是使用多個任務和轉換。 您將腳本工作用於封裝中必須完成一次的工作(或每個列舉物件一次),而不是每一個數據列一次。
您可將指令碼工作用於下列用途:
使用內建連線類型不支援的其他技術來存取數據。 例如,腳本可以使用Active Directory服務介面 (ADSI) 從 Active Directory 存取和擷取使用者名稱。
建立套件特定的性能計數器。 例如,腳本可以建立性能計數器,在複雜或執行不佳的工作執行時更新。
識別指定的檔案是空的或包含的數據列數目,然後根據該資訊影響封裝中的控制流程。 例如,如果檔案包含零個數據列,變數的值會設定為0,而評估值的優先順序條件約束會防止文件系統工作複製檔案。
如果您必須使用腳本對集合中每行數據執行相同的工作,您應該使用腳本元件,而不是腳本任務。 例如,如果您想要評估郵資金額的合理性,並略過具有非常高或低金額的數據列,您可以使用腳本元件。 如需詳細資訊,請參閱 指令碼元件。
如果多個套件使用腳本,請考慮撰寫自定義工作,而不是使用腳本工作。 如需詳細資訊,請參閱 開發自訂工作。
在您決定文稿工作是套件的適當選擇之後,您必須同時開發工作所使用的腳本,並設定工作本身。
撰寫和執行工作所使用的腳本
腳本工作會使用 Microsoft Visual Studio Tools for Applications (VSTA) 作為您撰寫腳本和執行這些腳本之引擎的環境。
VSTA 提供 Visual Studio 環境的所有標準功能,例如色彩編碼的 Visual Studio 編輯器、IntelliSense 和 對象總管。 VSTA 也會使用其他Microsoft開發工具所使用的相同調試程式。 腳本中的斷點可順暢地與 Integration Services 工作和容器上的斷點搭配運作。 VSTA 同時支援 Microsoft Visual Basic 和 Microsoft Visual C# 程式設計語言。
若要執行文稿,您必須在封裝執行所在的計算機上安裝 VSTA。 當封裝執行時,工作會載入腳本引擎並執行腳本。 您可以透過在專案中添加對外部 .NET 程式集的參考,在腳本中存取這些程式集。
備註
不同於舊版,您可以在其中指出腳本是否已先行編譯,所有腳本都會在 SQL Server 2008 Integration Services (SSIS) 和更新版本中先行編譯。 先行編譯腳本時,語言引擎不會在運行時間載入,而且套件執行速度會更快。 不過,先行編譯的二進位檔會耗用大量的磁碟空間。
設定腳本任務
您可以使用下列方式設定文稿工作:
提供工作執行的自定義腳本。
指定 VSTA 專案中 Integration Services 執行時間呼叫的方法,做為腳本工作程式碼的進入點。
指定文稿語言。
選擇性地提供唯讀和讀取/寫入變數的清單,以用於腳本中。
您可以透過 SSIS 設計工具或以程式設計方式設定這些屬性。
在設計器中設定腳本任務
下表描述 ScriptTaskLogEntry 可針對腳本工作記錄的事件。 在 ScriptTaskLogEntry [設定 SSIS 記錄] 對話方塊的 [詳細資料] 索引標籤上,選取事件進行記錄。 如需詳細資訊,請參閱 Integration Services (SSIS) 記錄 和 自訂記錄訊息。
| 記錄項目 | 說明 |
|---|---|
ScriptTaskLogEntry |
報告在腳本中實作記錄的結果。 工作會針對物件方法Dts的每個呼叫Log寫入記錄專案。 工作在執行程式碼時會寫入這些條目。 如需詳細資訊,請參閱 在腳本工作中記錄。 |
如需您可以在 SSIS 設計工具中設定之屬性的詳細資訊,請參閱下列主題:
如需如何在 SSIS 設計工具中設定這些屬性的詳細資訊,請參閱下列主題:
以程式設計方式設定文本工作
如需以程式設計方式設定這些屬性的詳細資訊,請參閱下列主題:
相關內容
- 技術文章: 如何在 C# 中傳送具有傳遞通知的電子郵件,shareourideas.com