sp_trace_setevent (Transact-SQL)
适用范围:SQL Server
在跟踪中添加或删除事件或事件列。 sp_trace_setevent
只能在已停止的现有跟踪(@status 为 0
)上执行。 如果在不存在或@status不存在0
的跟踪上执行此存储过程,则返回错误。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用扩展事件。
语法
sp_trace_setevent
[ @traceid = ] traceid
, [ @eventid = ] eventid
, [ @columnid = ] columnid
, [ @on = ] on
[ ; ]
参数
[ @traceid = ] traceid
要修改的跟踪的 ID。 @traceid为 int,无默认值。 用户使用此 @traceid 值来标识、修改和控制跟踪。
[ @eventid = ] eventid
要打开的事件的 ID。 @eventid为 int,无默认值。
下表列出了可以在跟踪中添加或删除的事件。
事件号 | 事件名称 | 描述 |
---|---|---|
0 至 9 |
Reserved |
Reserved |
10 |
RPC:Completed |
在完成了远程过程调用 (RPC) 时发生。 |
11 |
RPC:Starting |
在启动了 RPC 时发生。 |
12 |
SQL:BatchCompleted |
在 Transact-SQL 批处理完成时发生。 |
13 |
SQL:BatchStarting |
在 Transact-SQL 批处理启动时发生。 |
14 |
Audit Login |
当用户成功登录到 SQL Server 时发生。 |
15 |
Audit Logout |
当用户注销 SQL Server 时发生。 |
16 |
Attention |
在发生需要关注的事件(如客户端中断请求或客户端连接中断)时发生。 |
17 |
ExistingConnection |
在跟踪启动之前,检测到连接到 SQL Server 的用户的所有活动。 |
18 |
Audit Server Starts and Stops |
修改 SQL Server 服务状态时发生。 |
19 |
DTCTransaction |
跟踪两个或多个数据库之间的Microsoft分布式事务协调器(MS DTC)协调事务。 |
20 |
Audit Login Failed |
指示从客户端登录 SQL Server 失败。 |
21 |
EventLog |
指示已将事件记录到 Windows 应用程序日志中。 |
22 |
ErrorLog |
指示错误事件已在 SQL Server 错误日志中记录。 |
23 |
Lock:Released |
指示已释放某个资源(如页)的锁。 |
24 |
Lock:Acquired |
指示获取了某个资源(如数据页)的锁。 |
25 |
Lock:Deadlock |
指示两个并发事务由于试图获得对方事务拥有的资源的不兼容锁而发生了相互死锁。 |
26 |
Lock:Cancel |
指示已取消获取资源锁(例如,由于死锁)。 |
27 |
Lock:Timeout |
指示由于其他事务持有所需资源的阻塞锁而使对资源(例如页)锁的请求超时。 超时由@@LOCK_TIMEOUT函数确定,可以使用 SET LOCK_TIMEOUT 语句进行设置。 |
28 |
Degree of Parallelism Event |
在执行 SELECT、INSERT 或 UPDATE 语句之前发生。 |
29 至 31 |
Reserved |
改用事件 28。 |
32 |
Reserved |
Reserved |
33 |
Exception |
指示 SQL Server 中发生了异常。 |
34 |
SP:CacheMiss |
指示在过程缓存中找不到存储过程。 |
35 |
SP:CacheInsert |
指示某个项被插入到过程缓存中。 |
36 |
SP:CacheRemove |
指示从过程缓存中删除了某个项。 |
37 |
SP:Recompile |
指示已重新编译存储过程。 |
38 |
SP:CacheHit |
指示在过程缓存中找到了存储过程。 |
39 |
Deprecated |
已放弃 |
40 |
SQL:StmtStarting |
在 Transact-SQL 语句启动时发生。 |
41 |
SQL:StmtCompleted |
在 Transact-SQL 语句完成时发生。 |
42 |
SP:Starting |
指示启动了存储过程。 |
43 |
SP:Completed |
指示完成了存储过程。 |
44 |
SP:StmtStarting |
指示存储过程中的 Transact-SQL 语句已开始执行。 |
45 |
SP:StmtCompleted |
指示存储过程中的 Transact-SQL 语句已完成执行。 |
46 |
Object:Created |
指示 CREATE INDEX、CREATE TABLE 和 CREATE DATABASE 这样的语句已创建了一个对象。 |
47 |
Object:Deleted |
指示已在 DROP INDEX 和 DROP TABLE 这样的语句中删除了对象。 |
48 |
Reserved |
|
49 |
Reserved |
|
50 |
SQL Transaction |
跟踪 Transact-SQL BEGIN、COMMIT、SAVE 和 ROLLBACK TRANSACTION 语句。 |
51 |
Scan:Started |
指示启动了表或索引扫描 |
52 |
Scan:Stopped |
指示停止了表或索引扫描。 |
53 |
CursorOpen |
指示何时通过 ODBC、OLE DB 或 DB 库在 Transact-SQL 语句上打开游标。 |
54 |
TransactionLog |
将事务写入事务日志时进行跟踪。 |
55 |
Hash Warning |
指示在缓冲区分区上未处理的哈希运算(例如哈希联接、哈希聚合、哈希联合和哈希非重复)已还原为备用计划。 发生此事件的原因可能是递归深度、数据扭曲、跟踪标记或位计数。 |
56 至 57 |
Reserved |
|
58 |
Auto Stats |
指示发生了自动更新索引统计信息。 |
59 |
Lock:Deadlock Chain |
为导致死锁的每个事件而生成。 |
60 |
Lock:Escalation |
指示较细粒度的锁转换成了较粗粒度的锁(例如,页锁升级或转换为 TABLE 或 HoBT 锁)。 |
61 |
OLE DB Errors |
指示发生了 OLE DB 错误。 |
62 至 66 |
Reserved |
|
67 |
Execution Warnings |
指示在执行 SQL Server 语句或存储过程期间发生的任何警告。 |
68 |
Showplan Text (Unencoded) |
显示执行的 Transact-SQL 语句的计划树。 |
69 |
Sort Warnings |
指示不适合内存的排序操作。 不包括涉及创建索引的排序操作;仅对查询中的操作进行排序(例如 SELECT 语句中使用的 ORDER BY 子句)。 |
70 |
CursorPrepare |
指示何时准备好用于 ODBC、OLE DB 或 DB-Library 的 Transact-SQL 语句上的游标。 |
71 |
Prepare SQL |
ODBC、OLE DB 或 DB-Library 已准备好用于 Transact-SQL 语句或语句。 |
72 |
Exec Prepared SQL |
ODBC、OLE DB 或 DB 库已执行准备好的 Transact-SQL 语句或语句。 |
73 |
Unprepare SQL |
ODBC、OLE DB 或 DB-Library 尚未准备(已删除)已准备好 Transact-SQL 语句或语句。 |
74 |
CursorExecute |
执行以前由 ODBC、OLE DB 或 DB 库在 Transact-SQL 语句上准备的游标。 |
75 |
CursorRecompile |
ODBC 或 DB 库在 Transact-SQL 语句上打开的游标已直接重新编译,或者由于架构更改而重新编译。 为 ANSI 和非 ANSI 游标触发。 |
76 |
CursorImplicitConversion |
Transact-SQL 语句上的游标由 SQL Server 从一种类型转换为另一种类型。 为 ANSI 和非 ANSI 游标触发。 |
77 |
CursorUnprepare |
ODBC、OLE DB 或 DB-Library 未准备(删除)Transact-SQL 语句上的已准备游标。 |
78 |
CursorClose |
以前由 ODBC、OLE DB 或 DB 库打开的 Transact-SQL 语句上的游标已关闭。 |
79 |
Missing Column Statistics |
对于优化器可能很有用的列统计信息不可用。 |
80 |
Missing Join Predicate |
未执行联接谓词的查询。 这可能导致长时间运行查询。 |
81 |
Server Memory Change |
SQL Server 内存使用量已增加或减少 1 兆字节(MB)或最大服务器内存的 5%,以更大者为准。 |
82 至 91 |
User Configurable (0 - 9) |
用户定义的事件数据。 |
92 |
Data File Auto Grow |
指示服务器已自动扩展了数据文件。 |
93 |
Log File Auto Grow |
指示服务器已自动扩展了日志文件。 |
94 |
Data File Auto Shrink |
指示服务器已自动收缩了数据文件。 |
95 |
Log File Auto Shrink |
指示服务器已自动收缩了日志文件。 |
96 |
Showplan Text |
显示来自查询优化器的 SQL 语句的查询计划树。 该 TextData 列不包含此事件的 Showplan。 |
97 |
Showplan All |
显示查询计划,并显示已执行的 SQL 语句的完整编译时详细信息。 该 TextData 列不包含此事件的 Showplan。 |
98 |
Showplan Statistics Profile |
显示查询计划,并显示已执行的 SQL 语句的完整运行时详细信息。 该 TextData 列不包含此事件的 Showplan。 |
99 |
Reserved |
|
100 |
RPC Output Parameter |
生成每个 RPC 的参数的输出值。 |
101 |
Reserved |
|
102 |
Audit Database Scope GDR |
每次 SQL Server 中针对仅限数据库的操作(例如授予数据库权限)的 SQL Server 中的任何用户发出 GRANT、DENY、REVOKE 语句权限时都发生。 |
103 |
Audit Object GDR Event |
每次 SQL Server 中的任何用户发出 GRANT、DENY、REVOKE 对象权限时都发生。 |
104 |
Audit AddLogin Event |
添加或删除 SQL Server 登录名时发生;for sp_addlogin 和 sp_droplogin . |
105 |
Audit Login GDR Event |
添加或删除 Windows 登录权限时发生;sp_revokelogin ,sp_grantlogin 和sp_denylogin 。 |
106 |
Audit Login Change Property Event |
修改登录名的属性(密码除外)时发生;for sp_defaultdb 和 sp_defaultlanguage . |
107 |
Audit Login Change Password Event |
更改 SQL Server 登录密码时发生。 不会记录密码。 |
108 |
Audit Add Login to Server Role Event |
在从固定服务器角色添加或删除登录名时发生;for sp_addsrvrolemember 和 sp_dropsrvrolemember . |
109 |
Audit Add DB User Event |
在将登录名作为数据库用户(Windows 或 SQL Server)添加到数据库时发生;sp_revokedbaccess ,sp_grantdbaccess ,sp_adduser 和sp_dropuser 。 |
110 |
Audit Add Member to DB Role Event |
在将登录名作为数据库用户(固定或用户定义的)添加到数据库时发生;sp_droprolemember ,sp_addrolemember 和sp_changegroup 。 |
111 |
Audit Add Role Event |
在将登录名添加或删除为数据库用户时发生;for sp_addrole 和 sp_droprole . |
112 |
Audit App Role Change Password Event |
在更改应用程序角色的密码时发生。 |
113 |
Audit Statement Permission Event |
在使用语句权限(如 CREATE TABLE)时发生。 |
114 |
Audit Schema Object Access Event |
在成功或未成功使用了对象权限(如 SELECT)时发生。 |
115 |
Audit Backup/Restore Event |
在发出 BACKUP 或 RESTORE 命令时发生。 |
116 |
Audit DBCC Event |
在发出 DBCC 命令时发生。 |
117 |
Audit Change Audit Event |
在修改审核跟踪时发生。 |
118 |
Audit Object Derived Permission Event |
在发出 CREATE、ALTER 和 DROP 对象命令时发生。 |
119 |
OLEDB Call Event |
为分布式查询和远程存储过程调用 OLE DB 访问接口时发生。 |
120 |
OLEDB QueryInterface Event |
对分布式查询和远程存储过程进行 OLE DB QueryInterface 调用时发生。 |
121 |
OLEDB DataRead Event |
对 OLE DB 访问接口调用数据请求时发生。 |
122 |
Showplan XML |
执行 SQL 语句时发生。 包括该事件可以标识 Showplan 运算符。 每个事件都存储在格式正确的 XML 文档中。 此 Binary 事件的列包含编码的 Showplan。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。 |
123 |
SQL:FullTextQuery |
执行全文查询时发生。 |
124 |
Broker:Conversation |
报告 Service Broker 对话的进度。 |
125 |
Deprecation Announcement |
使用将从 SQL Server 的未来版本中删除的功能时发生。 |
126 |
Deprecation Final Support |
使用将从 SQL Server 的下一个主要版本中删除的功能时发生。 |
127 |
Exchange Spill Event |
当并行查询计划中通信缓冲区暂时写入 tempdb 数据库时发生。 |
128 |
Audit Database Management Event |
创建、更改或删除数据库时发生。 |
129 |
Audit Database Object Management Event |
对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时发生。 |
130 |
Audit Database Principal Management Event |
创建、更改或删除数据库的主体(如用户)时发生。 |
131 |
Audit Schema Object Management Event |
创建、更改或删除服务器对象时发生。 |
132 |
Audit Server Principal Impersonation Event |
在服务器范围内存在模拟(例如 EXECUTE AS LOGIN)时发生。 |
133 |
Audit Database Principal Impersonation Event |
数据库范围中发生模拟(如 EXECUTE AS USER 或 SETUSER)时发生。 |
134 |
Audit Server Object Take Ownership Event |
服务器范围中的对象的所有者发生更改时发生。 |
135 |
Audit Database Object Take Ownership Event |
数据库范围中的对象的所有者发生更改时发生。 |
136 |
Broker:Conversation Group |
当 Service Broker 创建新的聊天组或删除现有会话组时发生。 |
137 |
Blocked Process Report |
进程被阻塞的时间超过了指定的时间时发生。 不包括正在等待非死锁检测资源的系统进程或进程。 用于 sp_configure 配置生成报表的阈值和频率。 |
138 |
Broker:Connection |
报告 Service Broker 管理的传输连接的状态。 |
139 |
Broker:Forwarded Message Sent |
当 Service Broker 转发消息时发生。 |
140 |
Broker:Forwarded Message Dropped |
当 Service Broker 删除要转发的消息时发生。 |
141 |
Broker:Message Classify |
当 Service Broker 确定消息的路由时发生。 |
142 |
Broker:Transmission |
指示 Service Broker 传输层中发生了错误。 错误号和状态值指示了错误源。 |
143 |
Broker:Queue Disabled |
指示检测到病毒消息,因为 Service Broker 队列上连续发生五次事务回滚。 该事件包含数据库 ID 和包含有害消息的队列的队列 ID。 |
144 至 145 |
Reserved |
|
146 |
Showplan XML Statistics Profile |
执行 SQL 语句时发生。 标识 Showplan 运算符,并显示完整的编译时数据。 此 Binary 事件的列包含编码的 Showplan。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。 |
148 |
Deadlock Graph |
取消获取锁的尝试时发生,这是因为该尝试是死锁的一部分,并且被选为死锁牺牲品。 提供死锁的 XML 说明。 |
149 |
Broker:Remote Message Acknowledgement |
当 Service Broker 发送或接收消息确认时发生。 |
150 |
Trace File Close |
跟踪文件在回滚期间关闭时发生。 |
151 |
Reserved |
|
152 |
Audit Change Database Owner |
使用 ALTER AUTHORIZATION 更改数据库的所有者,并且检查执行该操作的权限时发生。 |
153 |
Audit Schema Object Take Ownership Event |
使用 ALTER AUTHORIZATION 来将所有者分配给对象,并且检查执行该操作的权限时发生。 |
154 |
Reserved |
|
155 |
FT:Crawl Started |
全文爬网(填充)开始时发生。 用于检查工作线程任务是否拾取了爬网请求。 |
156 |
FT:Crawl Stopped |
全文爬网(填充)停止时发生。 爬网成功完成或发生错误时停止。 |
157 |
FT:Crawl Aborted |
在全文爬网过程中遇到异常时发生。 通常导致全文爬网停止。 |
158 |
Audit Broker Conversation |
报告与 Service Broker 对话安全性相关的审核消息。 |
159 |
Audit Broker Login |
报告与 Service Broker 传输安全性相关的审核消息。 |
160 |
Broker:Message Undeliverable |
当 Service Broker 无法保留应传递到服务的已接收消息时发生。 |
161 |
Broker:Corrupted Message |
当 Service Broker 收到损坏的消息时发生。 |
162 |
User Error Message |
显示出现错误或异常时用户看到的错误消息。 |
163 |
Broker:Activation |
当队列监视器启动激活存储过程、发送 QUEUE_ACTIVATION 通知或队列监视器启动的激活存储过程退出时发生。 |
164 |
Object:Altered |
数据库对象更改时发生。 |
165 |
Performance statistics |
将经过编译的查询计划第一次缓存、重新编译或从计划缓存中删除时发生。 |
166 |
SQL:StmtRecompile |
发生语句级别的重新编译时发生。 |
167 |
Database Mirroring State Change |
镜像数据库的状态更改时发生。 |
168 |
Showplan XML For Query Compile |
在 SQL 语句编译时发生。 显示完整的编译时数据。 此 Binary 事件的列包含编码的 Showplan。 使用 SQL Server Profiler 可打开跟踪并查看显示计划。 |
169 |
Showplan All For Query Compile |
在 SQL 语句编译时发生。 显示完整的编译时数据。 用于标识 Showplan 运算符。 |
170 |
Audit Server Scope GDR Event |
指示在服务器范围中发生了权限的授予、拒绝或撤消事件(如创建登录)。 |
171 |
Audit Server Object GDR Event |
指示发生了对架构对象(如表或函数)的授予、拒绝或撤消事件。 |
172 |
Audit Database Object GDR Event |
指示发生了对数据库对象(如程序集和架构)的授予、拒绝或撤消事件。 |
173 |
Audit Server Operation Event |
使用了安全审核操作(如使用了更改设置、资源、外部访问或授权)时发生。 |
175 |
Audit Server Alter Trace Event |
检查语句的 ALTER TRACE 权限时发生。 |
176 |
Audit Server Object Management Event |
创建、更改或删除服务器对象时发生。 |
177 |
Audit Server Principal Management Event |
创建、更改或删除了服务器主体时发生。 |
178 |
Audit Database Operation Event |
发生数据库操作(如检查或订阅查询通知)时发生。 |
180 |
Audit Database Object Access Event |
访问数据库对象(如架构)时发生。 |
181 |
TM: Begin Tran starting |
BEGIN TRANSACTION 在请求启动时发生。 |
182 |
TM: Begin Tran completed |
请求完成时 BEGIN TRANSACTION 发生。 |
183 |
TM: Promote Tran starting |
PROMOTE TRANSACTION 在请求启动时发生。 |
184 |
TM: Promote Tran completed |
请求完成时 PROMOTE TRANSACTION 发生。 |
185 |
TM: Commit Tran starting |
COMMIT TRANSACTION 在请求启动时发生。 |
186 |
TM: Commit Tran completed |
请求完成时 COMMIT TRANSACTION 发生。 |
187 |
TM: Rollback Tran starting |
ROLLBACK TRANSACTION 在请求启动时发生。 |
188 |
TM: Rollback Tran completed |
请求完成时 ROLLBACK TRANSACTION 发生。 |
189 |
Lock:Timeout (timeout > 0) |
对资源(如页)的锁请求超时时发生。 |
190 |
Progress Report: Online Index Operation |
报告生成进程正在运行时,联机索引生成操作的进度。 |
191 |
TM: Save Tran starting |
SAVE TRANSACTION 在请求启动时发生。 |
192 |
TM: Save Tran completed |
请求完成时 SAVE TRANSACTION 发生。 |
193 |
Background Job Error |
后台作业不正常终止时发生。 |
194 |
OLEDB Provider Information |
分布式查询运行并收集对应于提供程序连接的信息时发生。 |
195 |
Mount Tape |
收到磁带装入请求时发生。 |
196 |
Assembly Load |
发生加载 CLR 程序集的请求时发生。 |
197 |
Reserved |
|
198 |
XQuery Static Type |
执行 XQuery 表达式时发生。 此事件类提供静态类型的 XQuery 表达式。 |
199 |
QN: subscription |
无法订阅查询注册时发生。 该 TextData 列包含有关事件的信息。 |
200 |
QN: parameter table |
有关活动订阅的信息存储在内部参数表中。 在创建或删除参数表时发生该事件类。 通常,重新启动数据库时将创建或删除这些表。 该 TextData 列包含有关事件的信息。 |
201 |
QN: template |
查询模板代表订阅查询的类。 通常,除参数值以外,相同类中的查询是相同的。 当新的订阅请求属于现有类(Match )、新类(Create 或类 Drop )时,将发生此事件类,该类指示清理没有活动订阅的查询类的模板。 该 TextData 列包含有关事件的信息。 |
202 |
QN: dynamics |
跟踪查询通知的内部活动。 该 TextData 列包含有关事件的信息。 |
212 |
Bitmap Warning |
指示何时在查询中禁用了位图筛选器。 |
213 |
Database Suspect Data Page |
指示何时将页面添加到 suspect_pages 表中 msdb 。 |
214 |
CPU threshold exceeded |
指示资源调控器何时检测到查询超出了 CPU 阈值(REQUEST_MAX_CPU_TIME_SEC )。 |
215 |
PreConnect:Starting |
指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。 |
216 |
PreConnect:Completed |
指示 LOGON 触发器或资源调控器分类器函数完成执行的时间。 |
217 |
Plan Guide Successful |
指示数据库引擎已成功为包含计划指南的查询或批处理生成执行计划。 |
218 |
Plan Guide Unsuccessful |
指示数据库引擎无法为包含计划指南的查询或批处理生成执行计划。 数据库引擎尝试为此查询或批处理生成执行计划,而无需应用计划指南。 无效的计划指南可能是此问题的原因。 可以使用系统函数验证计划指南 sys.fn_validate_plan_guide 。 |
235 |
Audit Fulltext |
[ @columnid = ] columnid
要为事件添加的列的 ID。 @columnid为 int,无默认值。
下表列出了可以为事件添加的列。
Column number | 列名 | 说明 |
---|---|---|
1 |
TextData |
与跟踪内捕获的事件类相关的文本值。 |
2 |
BinaryData |
与在跟踪中捕获的事件类相关的二进制值。 |
3 |
DatabaseID |
USE 数据库 语句指定的数据库的 ID,如果没有针对给定连接发出 USE 数据库语句,则为默认数据库 。 可以使用 DB_ID 函数确定数据库的值。 |
4 |
TransactionID |
系统分配的事务 ID。 |
5 |
LineNumber |
包含存在错误的行的行号。 对于涉及 Transact-SQL 语句的事件,例如 SP:StmtStarting , LineNumber 存储过程或批处理中包含语句的行号。 |
6 |
NTUserName |
Windows 用户名。 |
7 |
NTDomainName |
用户所属的 Windows 域。 |
8 |
HostName |
发起请求的客户端计算机的名称。 |
9 |
ClientProcessID |
客户端计算机分配给正在运行客户端应用程序的进程的 ID。 |
10 |
ApplicationName |
创建到 SQL Server 实例连接的客户端应用程序的名称。 此列由应用程序传递的值填充,而不是由所显示的程序名填充。 |
11 |
LoginName |
客户端的 SQL Server 登录名。 |
12 |
SPID |
SQL Server 分配给与客户端关联的进程的服务器进程 ID。 |
13 |
Duration |
事件所花费的实耗时间(以微秒为单位)。 此数据列未由 Hash Warning 事件填充。 |
14 |
StartTime |
事件开始的时间(如果可用)。 |
15 |
EndTime |
事件的结束时间。 此列未填充用于启动事件类,例如 SQL:BatchStarting 或 SP:Starting 。 事件也不会填充 Hash Warning 它。 |
16 |
Reads |
服务器代表事件所执行的逻辑磁盘读取次数。 此列未由 Lock:Released 事件填充。 |
17 |
Writes |
服务器代表事件所执行的物理磁盘写入次数。 |
18 |
CPU |
事件所用的 CPU 时间(毫秒)。 |
19 |
Permissions |
显示权限的位图;由安全审核使用。 |
20 |
Severity |
异常错误的严重级别。 |
21 |
EventSubClass |
事件子类的类型。 不会为所有事件类填充此数据列。 |
22 |
ObjectID |
系统分配的对象 ID。 |
23 |
Success |
尝试使用权限的成功情况;审核时使用。1 = success0 = 失败 |
24 |
IndexID |
受事件影响的对象的索引的 ID。 若要确定对象的索引 ID,请使用 indid 系统表的 sysindexes 列。 |
25 |
IntegerData |
与在跟踪中捕获的事件类相关的整型值。 |
26 |
ServerName |
要跟踪的 SQL Server 实例的名称( 服务器名称 或 servername\instancename)。 |
27 |
EventClass |
被记录的事件类的类型。 |
28 |
ObjectType |
对象(如表、函数或存储过程)的类型。 |
29 |
NestLevel |
执行此存储过程所处的嵌套级。 请参阅 @@NESTLEVEL。 |
30 |
State |
发生错误时的服务器状态。 |
31 |
Error |
错误号。 |
32 |
Mode |
获取的锁的锁模式。 此列未由 Lock:Released 事件填充。 |
33 |
Handle |
事件中引用的对象的句柄。 |
34 |
ObjectName |
被访问的对象的名称。 |
35 |
DatabaseName |
USE 数据库语句中指定的数据库 的名称。 |
36 |
FileName |
被修改的文件名的逻辑名称。 |
37 |
OwnerName |
被引用对象的所有者名称。 |
38 |
RoleName |
语句针对的数据库范围或服务器范围的角色的名称。 |
39 |
TargetUserName |
某些操作的目标的用户名。 |
40 |
DBUserName |
客户端的 SQL Server 数据库用户名。 |
41 |
LoginSid |
已登录的用户的安全标识符 (SID)。 |
42 |
TargetLoginName |
某些操作的目标的登录名。 |
43 |
TargetLoginSid |
某些操作的目标登录名的 SID。 |
44 |
ColumnPermissions |
列级别权限状态;由安全审核使用。 |
45 |
LinkedServerName |
链接服务器的名称。 |
46 |
ProviderName |
OLE DB 访问接口的名称。 |
47 |
MethodName |
OLE DB 方法的名称。 |
48 |
RowCounts |
批处理中的行数。 |
49 |
RequestID |
包含该语句的请求的 ID。 |
50 |
XactSequence |
用于说明当前事务的标记。 |
51 |
EventSequence |
此事件的序列号。 |
52 |
BigintData1 |
bigint 值,该值依赖于跟踪中捕获的事件类。 |
53 |
BigintData2 |
bigint 值,该值依赖于跟踪中捕获的事件类。 |
54 |
GUID |
GUID 值,与跟踪中捕获的事件类相关。 |
55 |
IntegerData2 |
整数值,与跟踪中捕获的事件类相关。 |
56 |
ObjectID2 |
相关的对象或实体的 ID(如果可用)。 |
57 |
Type |
整数值,与跟踪中捕获的事件类相关。 |
58 |
OwnerID |
拥有锁的对象的类型。 仅限于锁事件。 |
59 |
ParentName |
对象所在架构的名称。 |
60 |
IsSystem |
指示事件是发生在系统进程中还是发生在用户进程中。1 = system0 = user。 |
61 |
Offset |
存储过程或批查询中的语句的起始偏移量。 |
62 |
SourceDatabaseID |
对象源所在数据库的 ID。 |
63 |
SqlHandle |
基于即席查询的文本或 SQL 对象的数据库和对象 ID 的 64 位哈希。 此值可以传递给 sys.dm_exec_sql_text() 检索关联的 SQL 文本。 |
64 |
SessionLoginName |
发起会话的用户的登录名。 例如,如果使用并执行语句SessionLoginName 连接到 SQL ServerLogin1 ,则在显示时LoginName 显示Login1 Login2 。Login2 此数据列将同时显示 SQL Server 登录名和 Windows 登录名。 |
[ @on = ] on
指定是启用 (1
) 还是禁用 (0
) 事件。 @on 为 位,无默认值。
如果@on设置为,并且@columnidNULL
,则事件设置为ON
并清除所有列。1
如果 @columnid 不为 null,则该列将设置为 ON 表示该事件。
如果@on设置为0
,并且@columnidNULL
,则会打开OFF
事件并清除所有列。 如果 @columnid 不为 null,则列处于关闭状态。
下表说明了@on与@columnid之间的交互。
@on | @columnid | Result |
---|---|---|
ON (1 ) |
NULL |
事件已打开。 所有列被清除。 |
NOT NULL |
为指定事件打开列。 | |
OFF (0 ) |
NULL |
事件已 关闭。 所有列被清除。 |
NOT NULL |
为指定事件关闭列。 |
返回代码值
下表介绍了在存储过程完成后,可以获取的代码值。
返回代码 | 说明 |
---|---|
0 |
无错误。 |
1 |
未知错误。 |
2 |
本跟踪当前正在运行。 此时更改跟踪会导致错误。 |
3 |
指定的事件无效。 该事件可能不存在,或者它不适合存储过程。 |
4 |
指定的列无效。 |
9 |
指定的跟踪句柄无效。 |
11 |
指定的列在内部使用,不能删除。 |
13 |
内存不足。 当没有足够的内存来执行指定的操作时返回。 |
16 |
此函数对此跟踪无效。 |
注解
sp_trace_setevent
执行以前由早期版本的 SQL Server 中提供的扩展存储过程执行的许多操作。 使用 sp_trace_setevent
而不是:
xp_trace_addnewqueue
xp_trace_eventclassrequired
xp_trace_seteventclassrequired
用户必须为每个事件添加的每个列执行 sp_trace_setevent
。 每次执行期间,如果 @on 设置为 1
, sp_trace_setevent
请将指定的事件添加到跟踪的事件列表中。 如果 @on 设置为 0
, sp_trace_setevent
则从列表中删除指定的事件。
所有 SQL 跟踪存储过程(sp_trace_*
)的参数都严格类型化。 如果这些参数不是使用正确的输入参数数据类型(正如参数说明中指定的一样)调用的,则存储过程会返回错误。
有关使用跟踪存储过程的示例,请参阅 “创建跟踪”。
权限
需要 ALTER TRACE 权限。