sp_trace_generateevent (Transact-SQL)
创建用户定义事件。
注意 |
---|
不推荐使用此存储过程。 不推荐使用所有其他与跟踪相关的存储过程。 |
语法
sp_trace_generateevent [ @eventid = ] event_id
[ , [ @userinfo = ] 'user_info' ]
[ , [ @userdata = ] user_data ]
参数
[ @eventid=] event_id
要打开的事件的 ID。 event_id 的数据类型为 int,无默认值。 ID 必须是一个从 82 到 91 的事件号,它代表用 sp_trace_setevent 设置的用户定义事件。[ @userinfo= ] 'user_info'
用于标识事件原因的可选用户定义字符串。 user_info 的数据类型为 nvarchar(128),默认值为 NULL。[ @userdata= ] user_data
用于事件的可选的用户指定数据。 user_data 的数据类型为 varbinary(8000),默认值为 NULL。
返回代码值
下表说明在存储过程完成后用户可能获得的代码值。
返回代码 |
说明 |
---|---|
0 |
没有错误。 |
1 |
未知错误。 |
3 |
指定的事件无效。 该事件可能不存在或者它不适用于此存储过程。 |
13 |
内存不足。 在没有足够内存执行指定的操作时返回此代码。 |
注释
sp_trace_generateevent 是 Microsoft SQL Server 2000 存储过程,它执行以前由 SQL Server 早期版本中使用的 xp_trace_* 扩展存储过程执行的许多操作。 请使用 sp_trace_generateevent,而不要使用 xp_trace_generate_event。
只有用户定义事件的 ID 号可以与 sp_trace_generateevent 一起使用。 如果使用其他事件 ID 号,SQL Server 将产生错误。
所有 SQL 跟踪存储过程 (sp_trace_xx) 的参数的类型都受到严格限制。 如果没有用正确的输入参数数据类型(参数说明中指定的类型)来调用这些参数,则存储过程将返回错误。
权限
用户必须拥有 ALTER TRACE 权限。
示例
以下示例对一个示例表创建用户可配置的事件。
--Create a sample table.
CREATE TABLE user_config_test(col1 int, col2 char(10));
--DROP the trigger if it already exists.
IF EXISTS
(SELECT * FROM sysobjects WHERE name = 'userconfig_trg')
DROP TRIGGER userconfig_trg;
--Create an ON INSERT trigger on the sample table.
CREATE TRIGGER userconfig_trg
ON user_config_test FOR INSERT;
AS
EXEC master..sp_trace_generateevent
@event_class = 82, @userinfo = N'Inserted row into user_config_test';
--When an insert action happens, the user-configurable event fires. If
you were capturing the event id=82, you will see it in the Profiler output.
INSERT INTO user_config_test VALUES(1, 'abc');
请参阅
参考
sys.fn_trace_geteventinfo (Transact-SQL)
sp_trace_setevent (Transact-SQL)