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


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

Обновлен: November 2007

Уведомления о запросах появились в 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