Уведомление о запросах в SQL Server (ADO.NET)
Обновлен: November 2007
Уведомления о запросах появились в Microsoft SQL Server 2005 и пространстве имен System.Data.SqlClient ADO.NET 2.0. С помощью построенных на основе инфраструктуры компонента Service Broker уведомлений о запросах можно уведомлять приложения об изменении данных. Эта функция особенно полезна для приложений, которые предоставляют кэш данных из базы данных (например, для веб-приложений), и которым требуются уведомления об изменении исходных данных.
Существует три способа реализации уведомлений о запросах с помощью ADO.NET.
Низкоуровневую реализацию обеспечивает класс SqlNotificationRequest, который предоставляет функциональность на стороне сервера, позволяя выполнить команду с запросом на уведомления.
Высокоуровневая реализация обеспечивается классом SqlDependency, который обеспечивает высокоуровневую абстракцию работы с уведомлениями между исходным приложением и SQL Server, позволяя определять изменения на сервере с помощью зависимости. В большинстве случаев это самый простой и самый эффективный способ задействовать возможности уведомления SQL Server в управляемых клиентских приложениях с помощью поставщика данных .NET Framework для SQL Server.
Кроме того, в веб-приложениях, построенных с помощью 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 для разработчиков |
В этом подразделе
Включение уведомлений о запросах (ADO.NET)
Описывает использование уведомлений о запросах, в том числе требования к их включению и использованию.SqlDependency в приложении ASP.NET (ADO.NET)
Демонстрирует использование уведомлений о запросах из приложения ASP.NET.Выявление изменений с помощью SqlDependency (ADO.NET)
Демонстрирует, как определить, когда результаты запроса будут отличаться от полученных первоначально.Выполнение SqlCommand с помощью SqlNotificationRequest (ADO.NET)
Демонстрирует настройку работы с уведомлениями о запросах в объекте SqlCommand.
Ссылка
SqlNotificationRequest
Описывает класс SqlNotificationRequest и все его члены.SqlDependency
Описывает класс SqlDependency и все его члены.SqlCacheDependency
Описывает класс SqlCacheDependency и все его члены.