Notificações de consulta no SQL Server
Baseadas na infraestrutura do Service Broker, as notificações de consulta permitem que os aplicativos sejam notificados quando os dados forem alterados. Esse recurso é particularmente útil para aplicativos que fornecem um cache de informações de um banco de dados, como um aplicativo Web, e precisam ser notificados quando os dados de origem são alterados.
Há três maneiras de implementar notificações de consulta usando ADO.NET:
A implementação de baixo nível é fornecida pela classe que expõe a funcionalidade do lado do
SqlNotificationRequest
servidor, permitindo que você execute um comando com uma solicitação de notificação.A implementação de alto nível é fornecida pela
SqlDependency
classe, que é uma classe que fornece uma abstração de alto nível da funcionalidade de notificação entre o aplicativo de origem e o SQL Server, permitindo que você use uma dependência para detetar alterações no servidor. Na maioria dos casos, essa é a maneira mais simples e eficaz de aproveitar o recurso de notificações do SQL Server por aplicativos cliente gerenciados usando o Provedor de Dados do .NET Framework para SQL Server.Além disso, os aplicativos Web criados usando o ASP.NET 2.0 ou posterior podem usar as
SqlCacheDependency
classes auxiliares.
As notificações de consulta são usadas para aplicativos que precisam atualizar exibições ou caches em resposta a alterações nos dados subjacentes. O Microsoft SQL Server permite que os aplicativos do .NET Framework enviem um comando para o SQL Server e solicitem notificação se a execução do mesmo comando produzir conjuntos de resultados diferentes daqueles recuperados inicialmente. As notificações geradas no servidor são enviadas através de filas para serem processadas posteriormente.
Você pode configurar notificações para instruções SELECT e EXECUTE. Ao usar uma instrução EXECUTE, o SQL Server registra uma notificação para o comando executado em vez da instrução EXECUTE em si. O comando deve atender aos requisitos e limitações de uma instrução SELECT. Quando um comando que registra uma notificação contém mais de uma instrução, o Mecanismo de Banco de Dados cria uma notificação para cada instrução no lote.
Se você estiver desenvolvendo um aplicativo em que precise de notificações confiáveis em subsegundos quando os dados forem alterados, revise as seções Planejando uma estratégia eficiente de notificações de consulta e Alternativas às notificações de consulta no artigo Planejando notificações . Para obter mais informações sobre notificações de consulta e SQL Server Service Broker, consulte os links a seguir para artigos na documentação do SQL Server.
Documentação do SQL Server
Nesta Secção
Habilitando notificações de consulta Discute como usar notificações de consulta, incluindo os requisitos para habilitá-las e usá-las.
Detetando alterações com SqlDependency Demonstra como detetar quando os resultados da consulta serão diferentes daqueles recebidos originalmente.
Execução de SqlCommand com um SqlNotificationRequest Demonstra a configuração de um SqlCommand objeto para trabalhar com uma notificação de consulta.
Referência
SqlNotificationRequest Descreve a SqlNotificationRequest classe e todos os seus membros.
SqlDependency Descreve a SqlDependency classe e todos os seus membros.
SqlCacheDependency Descreve a SqlCacheDependency classe e todos os seus membros.