Condividi tramite


Notifiche di query in SQL Server

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:

  1. 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.

  2. 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 .NET Framework per SQL Server.

  3. 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 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 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'articolo Pianificazione delle notifiche. Per altre informazioni sulle notifiche di query e su SQL Server Service Broker, vedere i collegamenti seguenti agli articoli nella documentazione di SQL Server.

Documentazione di SQL Server

In questa sezione

Abilitazione notifiche di query Descrizione dell'utilizzo delle notifiche di query, inclusi i requisiti per abilitarle e usarle.

Rilevamento 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 per l'uso con una notifica di 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.

Vedi anche