系统变量

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 将被错误转换。

此规则也适用于用户定义的变量。但是,由于无法更改系统变量的数据类型,并且必须调整对这些变量的使用以适应该数据类型,因此用户定义变量更为灵活。在参数绑定中使用的用户定义变量通常是以与映射到它们的参数的数据类型兼容的数据类型来定义的。

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。