Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При определении поставщика событий Microsoft SQL Server необходимо определить запрос, собирающий данные события. Дополнительно можно определить запрос, осуществляющий постобработку таблиц, из которых осуществляется сбор данных.
Сбор данных
Запрос на языке Transact-SQL, определяемый для сбора данных, может быть любым запросом на языке Transact-SQL, который возвращает данные, точно совпадающие с полями в целевом классе событий. Например, если определен класс событий с двумя полями StockSymbol и StockPrice, то единственным требованием к запросу, собирающему события, является возвращение только двух столбцов данных, соответствующих имени и типу данных полей StockSymbol и StockPrice. Ниже приведен пример такого запроса:
SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;
В запросе, собирающем события, можно выполнить хранимую процедуру.
Фильтрация данных
Если возможно, что инструкция SELECT возвратит большой объем данных, и некоторые из этих данных не являются допустимыми данными событий, то запрос можно отфильтровать. Например, можно написать запрос, который возвращает данные об акциях, содержащие только те акции, на которые подписчики создали подписки:
SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable
WHERE StockSymbol IN
(SELECT DISTINCT StockSymbol FROM dbo.StockSubscriptions);
Этот запрос возвращает только данные об акциях, которые потенциально могут создавать уведомления.
Постобработка
Поставщик событий SQL Server поддерживает запрос постобработки, чтобы можно было очистить или изменить данные после создания событий. Например, возможно наличие столбца, имеющего значение 0 до создания событий, которое после создания событий необходимо установить равным 1. Чтобы обновить таблицы, можно написать запрос, подобный следующему:
UPDATE StockDB.dbo.StockTable
SET EventUsage = 1
WHERE EventUsage = 0;
Запрос постобработки выполняется в той же транзакции, что и запрос, собирающий события.
В запросе постобработки можно выполнить хранимую процедуру.
См. также
Основные понятия
Определение поставщика событий SQL Server
Другие ресурсы
Определение поставщиков событий
Стандартные поставщики событий
SELECT (Transact-SQL)