Notifiche di query in SQL Server

Scarica ADO.NET

Basate sull'infrastruttura di Service Broker, tali notifiche consentono di comunicare alle applicazioni che i dati sono stati modificati. Questa caratteristica è particolarmente utile per le applicazioni che forniscono una cache di informazioni provenienti da un database, ad esempio un'applicazione Web, e devono essere notificate quando i dati di origine vengono modificati.

Esistono tre modi per implementare le notifiche delle query tramite ADO.NET:

  • L'implementazione di basso livello viene offerta dalla classe SqlNotificationRequest che espone la funzionalità lato server, consentendo di eseguire un comando con una richiesta di notifica.

  • L'implementazione di alto livello viene offerta dalla classe SqlDependency, ovvero una classe che offre un'astrazione di alto livello della funzionalità di notifica tra l'applicazione di origine e SQL Server, consentendo di usare 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, usando il provider di dati Microsoft SqlClient per SQL Server.

  • Inoltre, nelle applicazioni Web create con ASP.NET 2.0 o versioni successive è possibile usare le classi helper SqlCacheDependency.

Le notifiche delle query sono utili 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 di inviare un comando a SQL Server e di richiedere che venga generata una notifica se l'esecuzione dello stesso produrrebbe set di risultati diversi da quelli recuperati inizialmente. Le notifiche generate nel server vengono inviate tramite code in modo da essere elaborate in un secondo momento.

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

Se si sviluppa un'applicazione in cui sono necessarie notifiche in frazioni di secondo affidabili quando i dati vengono modificati, vedere le sezioni Pianificazione di una strategia delle notifiche delle query efficiente e Alternative alle notifiche delle query nell'argomento Pianificazione delle notifiche nella documentazione online di SQL Server. Per altre informazioni sulle notifiche delle query e su SQL Server Service Broker, vedere i collegamenti seguenti agli argomenti della documentazione online di SQL Server.

Documentazione di SQL Server

In questa sezione

Abilitazione di notifiche di query
Descrizione di come usare le notifiche delle query, inclusi i requisiti per abilitarle e usarle.

SqlDependency in un'applicazione ASP.NET
Illustra l'uso delle notifiche delle query da un'applicazione ASP.NET.

Rilevamento di modifiche con SqlDependency
Illustra come rilevare i casi in cui i risultati della query si differenziano da quelli ricevuti in origine.

Esecuzione di SqlCommand con SqlNotificationRequest
Illustra la configurazione di un oggetto SqlCommand da usare con una notifica delle query.

Riferimento

SqlNotificationRequest
Descrive la classe SqlNotificationRequest e tutti i relativi membri.

SqlDependency
Descrive la classe SqlDependency e tutti i relativi membri.

SqlCacheDependency
Descrive la classe SqlCacheDependency e tutti i relativi membri.

Passaggi successivi