Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью уведомлений о запросах, построенных на основе инфраструктуры компонента Service Broker, приложения могут получать извещения об изменениях данных. Эта функция особенно полезна для приложений, которые предоставляют кэш данных из базы данных (например, для веб-приложений), и которым требуются уведомления об изменении исходных данных.
Microsoft.Data.SqlClient предоставляет два класса для уведомлений о запросах:
Используется SqlNotificationRequest для выполнения команды с запросом на уведомление и обработки сообщений Service Broker самостоятельно.
Используется SqlDependency для обнаружения изменений через
OnChangeсобытие. Microsoft. Data.SqlClient управляет прослушивателем и предоставляет сведения о уведомлениях в аргументах события.
Important
Не используйте System.Data.SqlClient для новой разработки. Используйте Microsoft.Data.SqlClient вместо этого. Класс ASP.NET Framework SqlCacheDependency требует System.Data.SqlClient и не интегрируется с Microsoft.Data.SqlClient. Для новых приложений Microsoft.Data.SqlClient подпишитесь на SqlDependency.OnChange и инвалидируйте записи через API кэша вашего приложения.
Уведомления о запросах удобно использовать в приложениях, которые должны обновлять дисплеи и кэши в ответ на изменения в базовых данных. SQL Server позволяет приложениям .NET отправлять команду и запрашивать уведомление, если выполнение той же команды приведет к получению других результирующих наборов, отличных от полученных изначально. Формируемые на сервере уведомления отправляются через очереди для последующей обработки.
Вы можете настроить уведомления для SELECT и EXECUTE выписок. При использовании инструкции EXECUTE SQL Server регистрирует уведомление для выполняемой команды, а не самого EXECUTE оператора. Команда должна соответствовать требованиям и ограничениям для оператора SELECT. Когда команда, которая регистрирует уведомление, содержит более одной инструкции, ядро СУБД создает уведомление для каждой инструкции в пакете.
Если вы разрабатываете приложение, в котором требуются надежные уведомления с минимальной задержкой при изменении данных, ознакомьтесь с разделами "Планирование эффективной стратегии уведомлений запросов" и "Альтернативы уведомлениям запросов" в статье "Планирование уведомлений". Дополнительные сведения о уведомлениях запросов и sql Server Service Broker см. в следующих статьях в документации по SQL Server.
Документация SQL Server
В этом разделе
Включение уведомлений о запросах описывает использование уведомлений запросов, включая требования к включению и использованию.
Обнаружение изменений с помощью SqlDependency демонстрирует, как определить, когда результаты запроса будут отличаться от полученных первоначально.
Выполнение SqlCommand с sqlNotificationRequest Демонстрирует настройку объекта SqlCommand для уведомления о запросе.
Справочные материалы
SqlNotificationRequest Описывает SqlNotificationRequest класс и все его члены.
SqlDependency Описывает SqlDependency класс и все его члены.
SqlCacheDependencyОписывает класс зависимостей кэша ASP.NET Framework для System.Data.SqlClient. Он не включает зависимости Microsoft.Data.SqlClient.