sp_trace_generateevent (Transact-SQL)

Создает пользовательское событие.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_trace_generateevent [ @eventid = ] event_id 
     [ , [ @userinfo = ] 'user_info' ]
     [ , [ @userdata = ] user_data ]

Аргументы

  • [ @eventid=] event_id
    Идентификатор события, которое требуется включить. Аргумент event_id имеет тип int и не имеет значения по умолчанию. Идентификатор должен быть одним из номеров событий (от 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.

В процедуре sp_trace_generateevent могут быть использованы идентификаторы только пользовательских событий. При использовании других идентификаторов 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')