Поделиться через


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');

См. также

Справочник

sys.fn_trace_geteventinfo (Transact-SQL)

Хранимая процедура sp_trace_setevent (Transact-SQL)

Основные понятия

SQL-трассировка