sp_trace_generateevent (Transact-SQL)

创建用户定义事件。

注意注意

不推荐使用此存储过程。 不推荐使用所有其他与跟踪相关的存储过程。

主题链接图标 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)

概念

SQL 跟踪