Partilhar via


Notificações de consulta no SQL Server

Baixar ADO.NET

Construídas sobre a infraestrutura do Service Broker, as notificações de consulta permitem que as aplicações sejam notificadas quando os dados mudaram. Esta funcionalidade é particularmente útil para aplicações que fornecem um cache de informação de uma base de dados, como uma aplicação Web, e que precisam de ser notificadas quando os dados de origem são alterados.

Existem três formas de implementar notificações de consulta usando ADO.NET:

  • A implementação de baixo nível é fornecida pela SqlNotificationRequest classe que expõe funcionalidades do lado do servidor, permitindo-lhe executar um comando com um pedido 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ções entre a aplicação de origem e o SQL Server, permitindo-lhe usar uma dependência para detetar alterações no servidor. Na maioria dos casos, esta é a forma mais simples e eficaz de tirar partido da capacidade de notificações SQL Server por parte de aplicações cliente geridas que utilizam o Microsoft SqlClient Data Provider for SQL Server.

  • Além disso, aplicações Web construídas com ASP.NET 2.0 ou posterior podem usar as SqlCacheDependency classes auxiliares.

As notificações de consulta são usadas para aplicações que precisam de atualizar ecrãs ou caches em resposta a alterações nos dados subjacentes. O Microsoft SQL Server permite que aplicações .NET enviem um comando para o SQL Server e solicitem notificação se executar o mesmo comando produzir conjuntos de resultados diferentes dos inicialmente recuperados. As notificações geradas no servidor são enviadas através de filas para serem processadas posteriormente.

Pode configurar notificações para as instruções SELECT e EXECUT. Ao usar uma instrução EXECUT, o SQL Server regista uma notificação para o comando executado em vez da própria instrução EXECUT. O comando deve cumprir os requisitos e limitações para uma instrução SELECT. Quando um comando que regista uma notificação contém mais do que uma instrução, o Motor de Base de Dados cria uma notificação para cada instrução no lote.

Se está a desenvolver uma aplicação onde precisa de notificações fiáveis em menos de segundos quando os dados mudam, consulte as secções Planear uma Estratégia Eficiente de Notificações de Consulta e Alternativas às Notificações de Consulta no tópico Planeamento de Notificações no SQL Server Books Online. Para mais informações sobre Notificações de Consultas e o SQL Server Service Broker, consulte os seguintes links para tópicos no SQL Server Books Online.

Documentação do SQL Server

Nesta secção

Ativação das notificações de consultas
Discute como usar notificações de consultas, incluindo os requisitos para as ativar e utilizar.

SqlDependency numa aplicação ASP.NET
Demonstra como usar notificações de consulta de uma aplicação ASP.NET.

Deteção de alterações com SqlDependency
Demonstra como detetar quando os resultados da consulta serão diferentes dos originalmente recebidos.

Execução de um SqlCommand com uma SqlNotificationRequest
Demonstra a configuração de um SqlCommand objeto para funcionar com uma notificação de consulta.

Reference

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.

Próximos passos