在指令碼元件中使用變數

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

您可以在文稿轉換編輯器的 [腳本] 頁面ReadOnlyVariablesReadWriteVariables 字段中輸入逗號分隔的變數清單,讓現有的變數可供只讀或讀取/寫入存取。 請記住變數名稱有區分大小寫。 Value使用屬性來讀取和寫入個別變數。 當指令碼在執行階段操作變數時,指令碼元件會在幕後處理任何所需的鎖定。

重要

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

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

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

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

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

Integration Services 圖示 (小型) 使用 Integration Services 保持最新狀態
如需來自Microsoft的最新下載、文章、範例和影片,以及來自社群的所選解決方案,請流覽 MSDN 上的 Integration Services 頁面:

流覽 MSDN 上的 Integration Services 頁面

如需這些更新的自動通知,請訂閱頁面上可用的 RSS 摘要。

另請參閱

Integration Services (SSIS) 變數
在套件中使用變數