SSIS系統變數

2021-09-07 07:23:35 字數 4479 閱讀 3165

sql server integration services 提供了一組系統變數,其中儲存有關正在執行的包及其物件的資訊。可以在表示式和屬性表示式中使用這些變數自定義包、容器、任務和事件處理程式。

可以在執行 sql 任務用來將變數對映到引數的引數繫結中使用所有變數(系統和使用者定義)。

下表介紹 integration services 為包提供的系統變數。

系統變數

資料型別

說明cancelevent

int32

windows 事件物件的控制代碼,任務可以向其傳送訊號以指示任務應停止執行。

creationdate

datetime

包的建立日期。

creatorcomputername

字串建立此包使用的計算機。

creatorname

字串包生成者的名稱。

executioninstanceguid

字串正在執行的包例項的唯一識別符號。

interactivemode

布林值指示是否在互動模式中執行包。如果包正在 ssis 設計器中執行,則此屬性將設定為true。如果包正在使用dtexec命令提示實用工具執行,則此屬性將設定為false

localeid

int32

包所使用的區域設定。

machinename

字串正在執行包的計算機的名稱。

offlinemode

布林值指示該包是否處於離線模式下。離線模式不獲取與資料來源的連線。

packageid

字串包的唯一識別符號。

packagename

字串包的名稱。

starttime

datetime

包開始執行的時間。

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 為事件處理程式所提供的系統變數。並非所有變數對所有事件處理程式都可用。

系統變數

資料型別

說明事件處理程式

cancel

布林值指示在出現錯誤、警告或查詢取消時事件處理程式是否停止執行。

onerror 事件處理程式

onwarning 事件處理程式

onquerycancel 事件處理程式

errorcode

int32

錯誤識別符號。

onerror 事件處理程式

oninformation 事件處理程式

onwarning 事件處理程式

errordescription

字串錯誤的說明。

onerror 事件處理程式

oninformation 事件處理程式

onwarning 事件處理程式

executionstatus

布林值當前的執行狀態。

onexecstatuschanged 事件處理程式

executionvalue

dbnull

執行值。

ontaskfailed 事件處理程式

localeid

int32

事件處理程式所使用的區域設定。

所有事件處理程式

percentcomplete

int32

已完成工作的百分比。

onprogress 事件處理程式

progresscounthigh

int32

64 位值的高位部分,指示由 onprogress 事件處理的操作的總數。

onprogress 事件處理程式

progresscountlow

int32

64 位值的低位部分,指示由 onprogress 事件處理的操作的總數。

onprogress 事件處理程式

progressdescription

字串進度說明。

onprogress 事件處理程式

propagate

布林值指示是否將該事件傳播到較高等級的事件處理程式。

注意:在包的驗證過程中忽略propagate變數的值。 如果在子包中將propagate設定為false,這並不會防止事件向上傳播至父包。若要防止父包處理事件,請將執行包任務的disableeventhandlers屬性設定為true

所有事件處理程式

sourcedescription

字串事件處理程式中引發事件的可執行檔案的說明。

所有事件處理程式

sourceid

字串引發事件的事件處理程式中可執行檔案的唯一識別符號。

所有事件處理程式

sourcename

字串引發事件的事件處理程式中可執行檔案的名稱。

所有事件處理程式

variabledescription

字串變數說明。

onvariablevaluechanged 事件處理程式

variableid

字串變數的唯一識別符號。

onvariablevaluechanged 事件處理程式

通常在包執行時,需要在表中儲存系統變數的值。例如,乙個包動態建立乙個表,並在表列中寫入建立該錶的包執行例項的 guid。

如果在執行 sql 任務所使用的 sql 語句中使用系統變數來對映引數,那麼重要的是要將每個引數繫結的資料型別設定為系統變數的資料型別。否則,系統變數的值可能被錯誤轉換。例如,如果在具有 guid 資料型別的引數繫結中使用executioninstanceguid系統變數,而該變數具有字串資料型別,幷包含表示包的執行例項的 guid 的字串,則包例項的 guid 將被錯誤轉換。

此規則也適用於使用者定義的變數。但是,由於無法更改系統變數的資料型別,並且必須調整對這些變數的使用以適應該資料型別,因此使用者定義變數更為靈活。在引數繫結中使用的使用者定義變數通常是以與對映到它們的引數的資料型別相容的資料型別來定義的。

SSIS中Sql Task 獲取系統變數

原文 ssis中sql task 獲取系統變數 執行 sql 任務使用不同的連線型別時,sql 命令的語法使用不同的引數標記。例如,ado.net 連線管理器型別要求 sql 命令使用格式為 varparameter的引數標記,而 ole db 連線型別要求使用問號 引數標記。在變數與引數之間的對映...

SSIS 變數和表示式

變數和屬性表示式是 ssis 設計中非常重要的組成部分,它們是提高ssis 靈活性的主要手段。變數和屬性表示式是互相關聯的,通常在屬性表示式中常常使用變數,所以我把他們放在一起介紹。變數 早在 sql server dts 中就引入了變數的概念,它的定義就像其他程式語言一樣,起到在程式中 ssis ...

如何除錯SSIS包之跟蹤變數賦值

在ssis開發工具sql server data tools中提供了除錯功能,可以讓我們方便的跟蹤引數賦值或者資料流條數。本文主要介紹了如何使用 的除錯功能。part a script task 的除錯 情景 在乙個ssis package中引數 的預設值是 我們假設在 中需要把 值更改為 在 裡面...