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


NSEventWrite<ИмяКлассаСобытий> (Transact-SQL)

Помещает одно событие в таблицу событий для данного класса событий. Для открытия нового пакета нужно использовать процедуру NSEventBeginBatchИмяКлассаСобытий, а для его закрытия — процедуру NSEventFlushBatchИмяКлассаСобытий. Перед закрытием пакета можно поместить в него несколько событий.

Синтаксис

[ schema_name . ] NSEventWriteEventClassName
    [ @EventBatchId = ] event_batch_ID ,
    [ @event_class_field_name = ] event_class_field_value [, ...n]

Аргументы

  • [ @EventBatchId = ] event_ batch_ID
    Идентификатор пакета событий для данного события. Идентификатор пакета событий должен существовать в таблице пакетов событий. Аргумент event_batch_ID имеет тип bigint и не имеет значения по умолчанию.
  • [ **@**event_class_field_name = ] event_class_field_value
    Помещает пару имя-значение в поле класса события. В каждый столбец таблицы событий можно поместить одну пару аргументов event_class_field_name и event_class_field_value. Если для столбца установлено значение по умолчанию или он может принимать значение NULL, пара имя-значение является необязательной.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Службы Microsoft SQL Server Notification Services создают хранимую процедуру NSEventWriteИмяКлассаСобытий в базе данных приложений при создании экземпляра. При обновлении приложения службы Notification Services повторно компилируют хранимую процедуру.

Эта хранимая процедура находится в схеме приложения, указанной элементом SchemaName файла определения приложения (ADF). Если имя схемы не указано, применяется схема по умолчанию dbo.

Чтобы передать приложению отдельные события с помощью языка Transact-SQL, можно воспользоваться процедурами NSEventBeginBatchИмяКлассаСобытий для открытия пакета, NSEventWriteИмяКлассаСобытий для записи отдельных событий и NSEventFlushBatchИмяКлассаСобытий для закрытия пакета событий.

Чтобы получить набор событий, а затем передать их приложению с помощью запроса, можно воспользоваться процедурой NSEventSubmitBatchИмяКлассаСобытий.

Разрешения

Права на выполнение по умолчанию имеют члены ролей NSEventProvider и NSRunService и фиксированной роли db_owner базы данных, а также члены фиксированной серверной роли sysadmin.

Примеры

В следующем примере показано, как начать пакет событий, записать одно событие, а затем закрыть пакет событий. В качестве поставщика событий для пакета выступает StockEP, а идентификатор пакета событий возвращается в выходном параметре @BatchID.

Приложение использует настройки схемы SchemaName по умолчанию, при которых все объекты приложения помещаются в схему dbo.

DECLARE @BatchID bigint;
EXEC dbo.NSEventBeginBatchStockEvents N'StockEP', @BatchID OUTPUT;
EXEC dbo.NSEventWriteStockEvents
   @EventBatchId=@BatchID,
   @StockSymbol=N'AWKS',
   @StockPrice=68.14;
EXEC dbo.NSEventFlushBatchStockEvents @BatchID;
SELECT @BatchID 'Event Batch';

Пример предполагает использование среды SQL Server Management Studio, так как идентификатор пакета событий возвращается в инструкции SELECT, и можно увидеть, какой пакет событий был создан.

См. также

Справочник

Хранимые процедуры служб Notification Services (Transact-SQL)

Другие ресурсы

Отчеты о производительности служб Notification Services
SchemaName Element (ADF)

Справка и поддержка

Получение помощи по SQL Server 2005