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


Уведомление о запросах в SQL Server (ADO.NET)

Впервые функция уведомления о запросах появилась в Microsoft SQL Server 2005, а пространство имен System.Data.SqlClient — в ADO.NET 2.0.С помощью уведомлений о запросах на основе инфраструктуры компонента Service Broker приложения могут получать извещения об изменениях данных.Эта функция особенно полезна для приложений, которые предоставляют кэш данных из базы данных (например, для веб-приложений), и которым требуются уведомления об изменении исходных данных.

Существует три способа реализации уведомлений о запросах с помощью ADO.NET.

  1. Низкоуровневую реализацию обеспечивает класс SqlNotificationRequest, который предоставляет функциональность на стороне сервера, позволяя выполнить команду с запросом на уведомления.

  2. Высокоуровневая реализация обеспечивается классом SqlDependency, который обеспечивает высокоуровневую абстракцию работы с уведомлениями между исходным приложением и SQL Server, позволяя определять изменения на сервере с помощью зависимости.В большинстве случаев это самый простой и самый эффективный способ задействовать возможности уведомления SQL Server в управляемых клиентских приложениях с помощью поставщика данных .NET Framework для SQL Server.

  3. Кроме того, в веб-приложениях, построенных с помощью ASP.NET 2.0 или более поздних версий, можно использовать вспомогательные классы SqlCacheDependency.

Уведомления о запросах используются в приложениях, в которых при изменении данных необходимо обновлять соответствующие данные на экране или в кэше.Microsoft SQL Server позволяет приложениям .NET Framework передавать команды в SQL Server и запрашивать уведомления, если при выполнении одной и той же команды может получиться результирующий набор, отличный от полученного первоначально.Уведомления, создаваемые на сервере, помещаются в очереди для последующей обработки.

Уведомления можно задать для инструкций SELECT и EXECUTE.При использовании инструкции EXECUTE сервер SQL Server регистрирует уведомление для выполняемой команды, а не самой инструкции EXECUTE.Команда должна соответствовать требованиям, предъявляемым к инструкции SELECT.Если команда, для которой регистрируется уведомление, состоит из нескольких инструкций, компонент Database Engine создает уведомления для каждой из них.

Дополнительные сведения об уведомлениях о запросах и компоненте SQL Server Service Broker см. в указанных ниже разделах электронной документации по SQL Server.

Электронная документация по SQL Server 2005

Электронная документация по SQL Server 2008

Использование уведомлений о запросах

Использование уведомлений о запросах

Создание запроса для уведомления

Создание запроса для уведомления

Компонент Service Broker

Компонент Service Broker

Справочный центр компонента Service Broker для разработчиков

Разработка (компонент Service Broker)

В этом подразделе

Ссылка

См. также

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

SQL Server и ADO.NET