Condividi tramite


Notifiche di query in SQL Server (ADO.NET)

Le notifiche di query rappresentano una funzionalità introdotta per la prima volta in Microsoft SQL Server 2005 e nello spazio dei nomi System.Data.SqlClient in ADO.NET 2.0.Basate sull'infrastruttura Service Broker, le notifiche di query consentono di inviare notifiche alle applicazioni quando i dati vengono modificati.Questa funzionalità è particolarmente utile per le applicazioni che forniscono una cache di informazioni da un database, ad esempio un'applicazione Web, e che richiedono una notifica quando i dati di origine vengono modificati.

Sono disponibili tre metodi per implementare le notifiche di query utilizzando ADO.NET:

  1. L'implementazione di basso livello è fornita dalla classe SqlNotificationRequest che espone la funzionalità sul lato server e consente di eseguire un comando con una richiesta di notifica.

  2. L'implementazione di alto livello è fornita dalla classe SqlDependency, che consente un'astrazione di alto livello della funzionalità di notifica tra l'applicazione di origine e SQL Server, permettendo di utilizzare una dipendenza per rilevare le modifiche nel server.Nella maggior parte dei casi si tratta del modo più semplice ed efficace per sfruttare la funzionalità di notifica di SQL Server in applicazioni client gestite utilizzando il provider di dati .Net Framework per SQL Server.

  3. Nelle applicazioni Web compilate con ASP.NET 2.0 o versione successiva è inoltre possibile utilizzare le classi helper SqlCacheDependency.

Le notifiche di query vengono utilizzate per applicazioni che richiedono l'aggiornamento delle visualizzazioni o delle cache in seguito a modifiche dei dati sottostanti.Microsoft SQL Server consente ad applicazioni .NET Framework di inviare un comando a SQL Server e di richiedere che venga generata una notifica se l'esecuzione del comando produrrebbe set di risultati diversi da quelli recuperati inizialmente.Le notifiche generate nel server vengono inviate tramite code per l'elaborazione successiva.

È possibile impostare notifiche per le istruzioni SELECT ed EXECUTE.Quando si utilizza un'istruzione EXECUTE, SQL Server registra una notifica per il comando eseguito anziché per l'istruzione EXECUTE stessa.Il comando deve soddisfare i requisiti e le limitazioni previste per un'istruzione SELECT.Quando un comando che registra una notifica contiene più di un'istruzione, il Motore di database crea una notifica per ogni istruzione inclusa nel batch.

Per ulteriori informazioni sulle notifiche di query e su SQL Server Service Broker, vedere i collegamenti seguenti agli argomenti della documentazione online di SQL Server.

Documentazione online di SQL Server 2005

Documentazione online di SQL Server 2008

Utilizzo di notifiche di query

Utilizzo di notifiche di query

Creazione di una query da notificare

Creazione di una query da notificare

Service Broker

Service Broker

Centro informazioni per lo sviluppatore di Service Broker

Sviluppo (Service Broker)

In questa sezione

Riferimenti

Vedere anche

Altre risorse

SQL Server e ADO.NET