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)