SQL Server Integration Services 提供一組系統變數,可儲存執行中封裝及其對象的相關信息。 這些變數可用於表示式和屬性表達式,以自定義封裝、容器、工作和事件處理程式。
系統和使用者定義的所有變數都可以用於執行 SQL 任務中用來將變數對應至參數的參數綁定。
套件的系統變數
下表描述 Integration Services 針對封裝所提供的系統變數。
| 系統變數 | 數據類型 | 說明 |
|---|---|---|
| CancelEvent | Int32 | 這個 Windows 事件物件的句柄,可用於發出信號以指示工作應停止執行。 |
ContainerStartTime |
日期時間 | 容器的開始時間。 |
| CreationDate | 日期時間 | 建立封裝的日期。 |
CreatorComputerName |
繩子 | 建立封裝的電腦。 |
| CreatorName | 繩子 | 建置套件的人員名稱。 |
ExecutionInstanceGUID |
繩子 | 執行封裝實例的唯一標識符。 |
FailedConfigurations |
繩子 | 失敗的封裝組態名稱。 |
IgnoreConfigurationsOnLoad |
布爾邏輯 | 指出載入封裝時是否忽略封裝組態。 |
| InteractiveMode | 布爾邏輯 | 指出封裝是否以互動式模式執行。 如果封裝在 SSIS 設計工具中執行, 這個屬性會設定為 True。 如果使用 DTExec 命令提示字元公用程式執行封裝,屬性會設定為 False。 |
LocaleId |
Int32 | 套件使用的地區設定。 |
| MachineName | 繩子 | 執行封裝的計算機名稱。 |
| OfflineMode | 布爾邏輯 | 指出封裝是否處於離線模式。 離線模式不會取得數據源的連接。 |
| PackageID | 繩子 | 封裝的唯一標識碼。 |
| PackageName | 繩子 | 套件的名稱。 |
| StartTime | 日期時間 | 封裝開始執行的時間。 |
ServerExecutionID |
Int64 | 在 Integration Services 伺服器上執行的封裝執行標識碼。 預設值為零。 只有在 Integration Services Server 上的 ISServerExec 執行封裝時,才會變更此值。 當有子封裝時,值會從父封裝傳遞至子封裝。 |
| UserName | 繩子 | 啟動封裝之用戶的帳戶。 用戶名稱由網域名稱限定。 |
| VersionBuild | Int32 | 封裝版本。 |
| VersionComment | 繩子 | 套件版本的評論。 |
| VersionGUID | 繩子 | 版本的唯一標識碼。 |
| VersionMajor | Int32 | 封裝的主要版本。 |
| VersionMinor | Int32 | 封裝的次要版本。 |
容器的系統變數
下表描述 Integration Services 針對 For 迴圈、Foreach 循環和時序容器所提供的系統變數。
| 系統變數 | 數據類型 | 說明 | 容器 |
|---|---|---|---|
LocaleId |
Int32 | 容器所使用的地區設定。 | For 迴圈容器 Foreach 迴圈容器 序列容器 |
工作系統變數
下表描述 Integration Services 針對工作所提供的系統變數。
| 系統變數 | 數據類型 | 說明 |
|---|---|---|
| CreationName | 繩子 | 工作的名稱。 |
LocaleId |
Int32 | 工作使用的地區設定。 |
| TaskID | 繩子 | 工作實例的唯一標識碼。 |
| TaskName | 繩子 | 工作實例的名稱。 |
TaskTransactionOption |
Int32 | 工作所使用的交易選項。 |
事件處理程式的系統變數
下表描述 Integration Services 針對事件處理程式所提供的系統變數。 並非所有變數都可供所有事件處理程式使用。
| 系統變數 | 數據類型 | 說明 | 事件處理程式 |
|---|---|---|---|
| 取消 | 布爾邏輯 | 指出當發生錯誤、警告或查詢取消時,事件處理程式是否停止執行。 | OnError 事件處理程式 OnWarning 事件處理程式 OnQueryCancel 事件處理程式 |
| ErrorCode | Int32 | 錯誤標識碼。 | OnError 事件處理程式 OnInformation 事件處理程式 OnWarning 事件處理程式 |
| ErrorDescription | 繩子 | 錯誤的描述。 | OnError 事件處理程式 OnInformation 事件處理程式 OnWarning 事件處理程式 |
| ExecutionStatus | 布爾邏輯 | 目前的執行狀態。 | OnExecStatusChanged 事件處理程式 |
ExecutionValue |
DBNull | 執行值。 | OnTaskFailed 事件處理程式 |
LocaleId |
Int32 | 事件處理程式使用的地區設定。 | 所有事件處理程式 |
| 完成百分比 | Int32 | 已完成工時百分比。 | OnProgress 事件處理程式 |
| ProgressCountHigh | Int32 | 64 位值的高部分,表示 OnProgress 事件所處理的作業總數。 | OnProgress 事件處理程式 |
ProgressCountLow |
Int32 | 64 位值的低部分,表示 OnProgress 事件所處理的作業總數。 | OnProgress 事件處理程式 |
| ProgressDescription | 繩子 | 進度的描述。 | OnProgress 事件處理程式 |
Propagate |
布爾邏輯 | 指出事件是否傳播至較高層級的事件處理程式。 注意:在封裝驗證期間會忽略變數的值 Propagate 。如果您在子封裝中將 設定 Propagate 為 False ,這不會防止事件傳播至父封裝。 |
所有事件處理程式 |
SourceDescription |
繩子 | 引發事件的事件處理程式中可執行檔的描述。 | 所有事件處理程式 |
SourceID |
繩子 | 引發事件的事件處理程式中可執行檔的唯一標識符。 | 所有事件處理程式 |
| SourceName | 繩子 | 引發事件的事件處理程式中可執行檔的名稱。 | 所有事件處理程式 |
VariableDescription |
繩子 | 變數描述。 | OnVariableValueChanged 事件處理程式 |
VariableID |
繩子 | 變數的唯一標識碼。 | OnVariableValueChanged 事件處理程式 |
參數係結中的系統變數
執行封裝時,在數據表中儲存系統變數的值通常很有用。 例如,一個封裝動態建立數據表,並在數據表的欄位中寫入建立該數據表之封裝執行實例的 GUID。
如果您使用系統變數對應至執行 SQL 工作所使用的 SQL 語句中的參數,請務必將每個參數系結的數據類型設定為系統變數的數據類型。 否則,系統變數的值可能會轉譯不正確。 例如,如果 ExecutionInstanceGUID 系統變數具有字串數據類型,而且包含代表執行中封裝實例之 GUID 的字串,則會在具有 GUID 數據類型的參數係結中使用,封裝實例的 GUID 將會不正確地轉譯。
此規則也適用於使用者定義的變數。 但是,雖然系統變數的數據類型無法變更,而且您必須量身打造使用這些變數來符合數據類型,但用戶定義更具彈性。 參數係結中使用的使用者定義變數通常會使用與所對應參數數據類型相容的數據類型來定義。