提供事件处理程序的上下文信息。
EVENT_PARAMETER( context-name )
context-name: AppInfo | ConnectionID | DisconnectReason | EventName | Executions | MirrorServerName | NumActive | ScheduleName | SQLCODE | TableName | User | condition-name
context-name 其中一个预设字符串。这些字符串必须放在引号中,它们区分大小写,并传递以下信息:
AppInfo 导致事件被触发的连接的 AppInfo 连接属性的值。使用以下语句查看事件上下文外部的属性的值:
SELECT CONNECTION_PROPERTY( 'AppInfo' ); |
此参数对 Connect、Disconnect、ConnectFailed、BackupEnd 和 RAISERROR 事件有效。AppInfo 字符串包含了为嵌入式 SQL、ODBC、OLE DB、ADO.NET 和 SQL Anywhere JDBC 驱动程序连接建立客户端连接的计算机名和应用程序名。
ConnectionID 导致事件被触发的连接的连接 ID。
DisconnectReason 表示连接终止原因的字符串。此参数仅对 Disconnect 事件有效。可以接受的结果包括:
abnormal 由于客户端应用程序在与数据库断开连接之前异常中止而导致断开连接,或者是在客户端和服务器计算机之间发生通信故障而导致断开连接。
connect failed 连接尝试失败。
drop connection 执行了一条 DROP CONNECTION 语句。
from client 由客户端应用程序断开连接。
inactive 在由 -ti 服务器选项所指定的时间内没有接收到请求。
liveness 在由 -tl 服务器选项所指定的时间内没有接收到活动包。
EventName 已触发的事件的名称。
Executions 事件处理程序执行的次数。
MirrorServerName 失去与数据库镜像系统中主服务器连接的镜像服务器或仲裁服务器的名称。
NumActive 事件处理程序的活动实例数。如果想限制事件处理程序,以便在任何给定时间仅执行一个实例,则此参数会有用处。
ScheduleName 导致事件被触发的调度的名称。如果该事件使用 TRIGGER EVENT 手工触发或者为系统事件,则结果为空字符串。如果在创建调度时没有显式地为其指派名称,则其名称将是事件的名称。
SQLCODE 连接失败期间所发生错误的 SQLCODE。此参数仅对 ConnectFailed 事件有效。
TableName 表名,与 RemainingValues 一起使用。
User 导致事件被触发的用户的用户 ID。
此外,可以从 EVENT_PARAMETER 函数访问 EVENT_CONDITION 函数的任何有效 condition-name 参数。
下列表列出了 context-name 值及对其有效的系统事件类型。
Context-name 值 | 有效系统事件类型 |
---|---|
AppInfo | BackupEnd、"Connect"、ConnectFailed、"Disconnect"、"RAISERROR"、用户事件 |
ConnectionID | BackupEnd、"Connect"、"Disconnect"、Global Autoincrement、"RAISERROR"、用户事件 |
DisconnectReason | "Disconnect" |
EventName | all |
Executions | all |
NumActive | all |
SQLCODE | ConnectFailed |
TableName | GlobalAutoincrement |
User | BackupEnd、"Connect"、ConnectFailed、"Disconnect"、GlobalAutoincrement、"RAISERROR"、用户事件 |
VARCHAR
传递给事件的最大值大小受到服务器最大页面大小(-gp 服务器选项)的限制。过长的值将被截断成小于最大页面大小。
SQL/2008 服务商扩充。
以下示例说明如何将字符串参数传递给一个事件。该事件显示其在数据库服务器消息窗口中触发的时间。
CREATE EVENT ev_PassedParameter HANDLER BEGIN MESSAGE 'ev_PassedParameter - was triggered at ' || event_parameter( 'time' ); END; TRIGGER EVENT ev_PassedParameter( "Time"=string(current timestamp ) ); |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |