Integration Services 變數

變數會儲存 SQL Server Integration Services 封裝及其容器、工作和事件處理常式在執行階段可使用的值。「指令碼」工作和「指令碼」元件中的指令碼也可以使用變數。將工作和容器排序成工作流程的優先順序條件約束,可在其條件約束定義含有運算式時使用變數。

您可將 Integration Services 封裝中的變數用於下列用途:

  • 在執行階段更新封裝元素的屬性。例如,您可以動態設定「Foreach 迴圈」容器允許的並行可執行檔數目。

  • 包含記憶體中的查閱資料表。例如,封裝可執行用以載入一個具有資料值之變數的「執行 SQL」工作。

  • 載入具有資料值的變數,然後將其用於指定 WHERE 子句中的搜尋條件。例如,「指令碼」工作中的指令碼可以更新 Transact-SQL 陳述式在「執行 SQL」工作中所使用的變數值。

  • 載入一個值為整數的變數,然後將該值用於控制封裝控制流程中的迴圈。例如,您可以使用「For 迴圈」容器之評估運算式中的變數來控制反覆運算。

  • 在執行階段擴展 Transact-SQL 陳述式的參數值。例如,封裝可執行「執行 SQL」工作,然後使用變數動態設定 Transact-SQL 陳述式中的參數。

  • 建立包含變數值的運算式。例如,「衍生的資料行」轉換可使用變數值乘以資料行值而取得的結果來擴展資料行。

Integration Services 支援兩種類型的變數:使用者自訂變數和系統變數。使用者自訂變數由封裝開發人員定義,而系統變數則由 Integration Services 定義。您可以根據封裝需要建立許多使用者自訂變數,但無法建立其他系統變數。

所有的變數 (系統變數和使用者自訂變數) 都可在「執行 SQL」工作用來將變數對應至 SQL 陳述式之參數的參數繫結中使用。如需詳細資訊,請參閱<SSIS 執行 SQL 工作>和<在執行 SQL 工作中使用參數和傳回碼>。

[!附註]

使用者自訂變數和系統變數的名稱會區分大小寫。

您可以為下列所有 Integration Services 容器類型建立使用者自訂變數:封裝、「Foreach 迴圈」容器、「For 迴圈」容器、「時序」容器、工作和事件處理常式。使用者自訂變數是容器 Variables 集合的成員。

如果您使用「SSIS 設計師」建立封裝,則可以在「SSIS 設計師」之 [封裝總管] 索引標籤上的 [變數] 資料夾中,查看 Variables 集合的成員。資料夾會列出使用者自訂變數和系統變數。

您可以利用下列方式設定使用者自訂變數:

  • 提供變數的名稱和描述。

  • 指定變數的命名空間。

  • 指示其值變更時變數是否會引發事件。

  • 指示變數是唯讀還是可讀寫。

  • 使用運算式的評估結果,以設定變數值。

  • 建立封裝或封裝物件 (例如工作) 範圍內的變數。

  • 指定變數的值和資料類型。

系統變數上唯一可設定的選項是指定其變更值時,它們是否會引發事件。

針對不同的容器類型可使用一組不同的系統變數。如需有關封裝及其元素所使用之系統變數的詳細資訊,請參閱<系統變數>。

如需有關變數之真實生活使用狀況的詳細資訊,請參閱<在封裝中使用變數>。

命名空間

Integration Services 提供兩個命名空間:UserSystem。依預設,自訂變數屬於 User 命名空間,而系統變數則屬於 System 命名空間。您可以為使用者定義變數建立其他命名空間,並變更 User 命名空間的名稱,但是您無法變更 System 命名空間的名稱,也無法將變數加入 System 命名空間或將系統變數指派給其他命名空間。

範圍

變數建立於封裝範圍之內,或封裝中的容器、工作或事件處理常式範圍之內。因為封裝容器位於容器階層的最上層,所以具有封裝範圍的變數在功能上與全域變數相同,且可以由封裝內的所有容器使用。同樣地,在容器 (例如「For 迴圈」容器) 範圍中定義的變數可由「For 迴圈」容器內的所有工作或容器使用。

如果封裝使用「執行封裝」工作來執行其他封裝,則在呼叫封裝或「執行封裝」工作範圍中定義的變數可用於所呼叫的封裝,方法是使用「父封裝變數」組態類型。如需詳細資訊,請參閱<SSIS 封裝組態>。

使用者自訂變數值可以是常值或是運算式。變數包含設定變數值和該值之資料類型的選項。兩個屬性必須相容:例如,同時使用字串值和整數資料類型是無效的。

如果變數設定為做為運算式評估,則必須提供運算式。在執行階段會評估運算式,且會將變數值設定為評估結果。例如,如果變數使用運算式 DATEPART("month", GETDATE()) ,則變數的值將為目前日期所在之月份數。運算式必須是使用 SSIS 運算式文法語法的有效運算式。當運算式搭配變數使用時,運算式可以使用運算式文法提供的常值、運算子和函數,但是運算式無法參考封裝中資料流程的資料行。運算式的最大長度為 4000 個字元。如需詳細資訊,請參閱<Integration Services 運算式參考>。

設定變數

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

如需有關可在「SSIS 設計師」中設定之屬性的詳細資訊,請參閱<變數視窗>。

以程式設計方式設定變數

若要深入了解有關變數屬性和以程式設計方式設定這些屬性的詳細資訊,請參閱<Variable>。

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

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

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