共用方式為


在指令碼元件中使用變數

變數會儲存封裝及其容器、工作與事件處理常式在執行階段所能使用的值。 如需詳細資訊,請參閱<Integration Services (SSIS) 變數>。

您可以在 [指令碼轉換編輯器][指令碼] 頁面上的 ReadOnlyVariables 與 ReadWriteVariables 欄位中輸入以逗號分隔的變數清單,來將現有的變數以唯讀或讀取/寫入存取的方式提供自訂指令碼使用。 請記住變數名稱有區分大小寫。 使用 Value 屬性讀取和寫入個別變數。 當指令碼在執行階段操作變數時,指令碼元件會在幕後處理任何所需的鎖定。

重要事項重要事項

ReadWriteVariables 的集合只能在 PostExecute 方法中使用,才能最佳化效能並將鎖定衝突的風險降到最低。 因此您無法在處理每一列資料時,直接增量封裝變數值。 必須改增量區域變數值,並在處理所有的資料之後,將封裝變數值設定為 PostExecute 方法中的區域變數值。 您也可以使用 VariableDispenser 屬性,以解決這個限制,如本主題稍後所述。 不過,在處理每個資料列時直接寫入封裝變數,將會對效能產生負面的影響,並增加鎖定衝突的風險。

如需有關 [指令碼轉換編輯器][指令碼] 頁面的詳細資訊,請參閱<在指令碼元件編輯器中設定指令碼元件>與<指令碼轉換編輯器 (指令碼頁面)>。

指令碼元件會在 ComponentWrapper 專案項目中建立 Variables 集合類別,它的每個預先設定的變數值 (屬性與變數本身的名稱相同) 都有強式類型的存取子屬性。 此集合是透過 ScriptMain 類別的 Variables 屬性來公開。 存取子屬性會提供適當的唯讀或是讀取/寫入權限給變數值。 例如,如果您已將名為 MyIntegerVariable 的整數變數加入 ReadOnlyVariables 清單,可以使用下列程式碼在指令碼中擷取其值:

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

您也可以使用透過呼叫 Me.VariableDispenser 來存取的 VariableDispenser 屬性,以使用指令碼元件中的變數。 在這種情況下,您不是為變數使用具類型和具名的存取子屬性,而是直接存取變數。 在使用 VariableDispenser 時,您必須在自己的程式碼中處理變數值的鎖定語意和資料類型的轉換。 如果您想要使用在設計階段無法使用,但是會在執行階段以程式設計方式建立的變數,就必須使用 VariableDispenser 屬性,而不是具名與具類型的存取子屬性。

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

如需取得 Microsoft 的最新下載、文件、範例、影片及社群的精選解決方案,請瀏覽 MSDN 上的 Integration Services 頁面:


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

請參閱

工作

在封裝中使用變數

概念

Integration Services (SSIS) 變數