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:
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.
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.
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 |
---|---|
In questa sezione
Abilitazione di notifiche di query (ADO.NET)
Viene descritto come utilizzare le notifiche di query, compresi i requisiti per l'attivazione e l'utilizzo.SqlDependency in un'applicazione ASP.NET (ADO.NET)
Viene illustrato come utilizzare le notifiche di query da un'applicazione ASP.NET.Rilevamento di modifiche con SqlDependency (ADO.NET)
Viene illustrato come rilevare i casi in cui i risultati delle query saranno diversi da quelli ricevuti in origine.Esecuzione di SqlCommand con SqlNotificationRequest (ADO.NET)
Viene illustrata la configurazione di un oggetto SqlCommand da utilizzare con una notifica di query.
Riferimenti
SqlNotificationRequest
Vengono descritti la classe SqlNotificationRequest e tutti i relativi membri.SqlDependency
Vengono descritti la classe SqlDependency e tutti i relativi membri.SqlCacheDependency
Vengono descritti la classe SqlCacheDependency e tutti i relativi membri.