sp_trace_setevent (Transact-SQL)

适用范围:SQL Server

在跟踪中添加或删除事件或事件列。 sp_trace_setevent 只能在已停止的现有跟踪(@status0)上执行。 如果在不存在或@status不存在0的跟踪上执行此存储过程,则返回错误。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用扩展事件。

Transact-SQL 语法约定

语法

sp_trace_setevent
    [ @traceid = ] traceid
    , [ @eventid = ] eventid
    , [ @columnid = ] columnid
    , [ @on = ] on
[ ; ]

参数

[ @traceid = ] traceid

要修改的跟踪的 ID。 @traceid为 int,无默认值。 用户使用此 @traceid 值来标识、修改和控制跟踪。

[ @eventid = ] eventid

要打开的事件的 ID。 @eventid为 int,无默认值。

下表列出了可以在跟踪中添加或删除的事件。

事件号 事件名称 描述
09 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 语句之前发生。
2931 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 指示在缓冲区分区上未处理的哈希运算(例如哈希联接、哈希聚合、哈希联合和哈希非重复)已还原为备用计划。 发生此事件的原因可能是递归深度、数据扭曲、跟踪标记或位计数。
5657 Reserved
58 Auto Stats 指示发生了自动更新索引统计信息。
59 Lock:Deadlock Chain 为导致死锁的每个事件而生成。
60 Lock:Escalation 指示较细粒度的锁转换成了较粗粒度的锁(例如,页锁升级或转换为 TABLE 或 HoBT 锁)。
61 OLE DB Errors 指示发生了 OLE DB 错误。
6266 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%,以更大者为准。
8291 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_addloginsp_droplogin.
105 Audit Login GDR Event 添加或删除 Windows 登录权限时发生;sp_revokeloginsp_grantloginsp_denylogin
106 Audit Login Change Property Event 修改登录名的属性(密码除外)时发生;for sp_defaultdbsp_defaultlanguage.
107 Audit Login Change Password Event 更改 SQL Server 登录密码时发生。

不会记录密码。
108 Audit Add Login to Server Role Event 在从固定服务器角色添加或删除登录名时发生;for sp_addsrvrolemembersp_dropsrvrolemember.
109 Audit Add DB User Event 在将登录名作为数据库用户(Windows 或 SQL Server)添加到数据库时发生;sp_revokedbaccesssp_grantdbaccesssp_addusersp_dropuser
110 Audit Add Member to DB Role Event 在将登录名作为数据库用户(固定或用户定义的)添加到数据库时发生;sp_droprolemembersp_addrolemembersp_changegroup
111 Audit Add Role Event 在将登录名添加或删除为数据库用户时发生;for sp_addrolesp_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。
144145 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:StmtStartingLineNumber 存储过程或批处理中包含语句的行号。
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:BatchStartingSP:Starting。 事件也不会填充 Hash Warning 它。
16 Reads 服务器代表事件所执行的逻辑磁盘读取次数。 此列未由 Lock:Released 事件填充。
17 Writes 服务器代表事件所执行的物理磁盘写入次数。
18 CPU 事件所用的 CPU 时间(毫秒)。
19 Permissions 显示权限的位图;由安全审核使用。
20 Severity 异常错误的严重级别。
21 EventSubClass 事件子类的类型。 不会为所有事件类填充此数据列。
22 ObjectID 系统分配的对象 ID。
23 Success 尝试使用权限的成功情况;审核时使用。

1 = success
0 = 失败
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 = system
0 = user。
61 Offset 存储过程或批查询中的语句的起始偏移量。
62 SourceDatabaseID 对象源所在数据库的 ID。
63 SqlHandle 基于即席查询的文本或 SQL 对象的数据库和对象 ID 的 64 位哈希。 此值可以传递给 sys.dm_exec_sql_text() 检索关联的 SQL 文本。
64 SessionLoginName 发起会话的用户的登录名。 例如,如果使用并执行语句SessionLoginName连接到 SQL ServerLogin1,则在显示时LoginName显示Login1Login2Login2 此数据列将同时显示 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 设置为 1sp_trace_setevent 请将指定的事件添加到跟踪的事件列表中。 如果 @on 设置为 0sp_trace_setevent 则从列表中删除指定的事件。

所有 SQL 跟踪存储过程(sp_trace_*)的参数都严格类型化。 如果这些参数不是使用正确的输入参数数据类型(正如参数说明中指定的一样)调用的,则存储过程会返回错误。

有关使用跟踪存储过程的示例,请参阅 “创建跟踪”。

权限

需要 ALTER TRACE 权限。