Informazioni sulle notifiche degli eventi

Le notifiche degli eventi vengono eseguite in risposta a una serie di istruzioni DDL (Data Definition Language) Transact-SQL ed eventi di Traccia SQL mediante l'invio di informazioni sugli eventi a un servizio Service Broker.

È possibile utilizzare le notifiche degli eventi per eseguire le attività seguenti:

  • Registrare e visualizzare le modifiche o le attività riscontrate sul database.
  • Eseguire un'operazione in risposta a un evento in modo asincrono anziché sincrono.

Le notifiche degli eventi possono costituire un'alternativa a trigger DDL e Traccia SQL a livello di programmazione.

Le notifiche degli eventi vengono eseguite in modo asincrono, all'esterno dell'ambito di una transazione. A differenza dei trigger DDL, è pertanto possibile utilizzare le notifiche degli eventi all'interno di un'applicazione di database per rispondere a eventi senza utilizzare le risorse definite dalla transazione immediata. Per ulteriori informazioni, vedere Informazioni sulle differenze fra notifiche degli eventi e trigger.

A differenza di Traccia SQL, è possibile utilizzare le notifiche degli eventi per eseguire un'operazione all'interno di un'istanza di SQL Server in risposta a un evento di Traccia SQL. Per ulteriori informazioni, vedere Informazioni sul confronto tra notifiche degli eventi e Traccia SQL.

Durante la creazione di una notifica degli eventi, vengono aperte una o più conversazioni Service Broker tra un'istanza di SQL Server e il servizio di destinazione specificato. Tali conversazioni rimangono in genere aperte finché la notifica degli eventi è disponibile come oggetto nell'istanza del server. In alcune situazioni di errore è possibile che le conversazioni vengano chiuse prima dell'eliminazione della notifica. Le conversazioni non vengono mai condivise tra le notifiche degli eventi. A ogni notifica sono associate conversazioni esclusive. Se una conversazione viene terminata in modo esplicito, il servizio di destinazione non potrà più altri messaggi e la conversazione non verrà riaperta alla successiva attivazione della notifica degli eventi.

Le informazioni sugli eventi vengono fornite a Service Broker sotto forma di variabile di tipo xml. Tale variabile fornisce informazioni relative al momento in cui si verifica l'evento, all'oggetto di database interessato, all'istruzione batch Transact-SQL, nonché informazioni di altro tipo. Per ulteriori informazioni sullo schema XML prodotto dalle notifiche degli eventi, vedere EVENTDATA (Transact-SQL).

I dati degli eventi possono essere utilizzati in applicazioni eseguite contestualmente a SQL Server per tenere traccia dello stato di avanzamento e per prendere decisioni. La notifica degli eventi seguente, ad esempio, invia un avviso a un determinato servizio ogni volta che viene eseguita un'istruzione ALTER TABLE nel database di esempio AdventureWorks.

USE AdventureWorks
GO
CREATE EVENT NOTIFICATION NotifyALTER_T1
ON DATABASE
FOR ALTER_TABLE
TO SERVICE '//Adventure-Works.com/ArchiveService' ,
    '8140a771-3c4b-4479-8ac0-81008ab17984';

In Esempi del Motore di database di SQL Server è disponibile EventNotificationSample.sql, uno script di esempio relativo alle notifiche degli eventi che può essere eseguito sul database di esempio AdventureWorks. Per ulteriori informazioni, vedere Esempio di notifica degli eventi.

Vedere anche

Concetti

Progettazione di notifiche degli eventi
Informazioni sulle notifiche degli eventi
Implementazione di notifiche degli eventi

Guida in linea e informazioni

Assistenza su SQL Server 2005