Condividi tramite


Messaggi di notifica delle query

I messaggi di notifica delle query contengono codice XML. Ogni messaggio include il motivo della creazione del messaggio e il messaggio di notifica incluso al momento della creazione della notifica.

Gli attributi dell'elemento QueryNotification identificano il motivo del messaggio e l'elemento Message contiene l'ID di notifica per la sottoscrizione. Ad esempio, il documento XML illustrato di seguito è un messaggio di notifica delle query completo, riformattato in modo da migliorare la leggibilità:

<qn:QueryNotification
  xmlns:qn="https://schemas.microsoft.com/SQL/Notifications/QueryNotification"
  Type="change" Source="data" Info="insert">
    <qn:Message>http://adventure-works.com/catalog.aspx?Category=Cars</qn:Message>
</qn:QueryNotification>

Il messaggio di notifica delle query seguente indica che un'istruzione INSERT ha modificato i dati per la sottoscrizione con il messaggio http://adventure-works.com/catalog.aspx?Category=Cars.

[!NOTA] Poiché la notifica viene recapitata come documento XML, Motore di database utilizza caratteri di escape per tutti i caratteri non validi in un documento XML. Ad esempio, se il messaggio inoltrato con la sottoscrizione contiene il carattere <, nel documento XML restituito il carattere viene sostituito con &lt;.

Nelle tabelle seguenti vengono elencati i valori di ogni attributo. SQL Server produce solo alcune combinazioni di attributi. Ad esempio, poiché il valore change dell'attributo Type richiede che la sottoscrizione sia stata creata, il valore change dell'attributo Type non viene mai combinato all'argomento Source con valore statement.

I messaggi di notifica delle query ricadono in due tipi principali, distinti dal valore dell'attributo Type. Per indicare che i risultati della query sono cambiati, Motore di database crea un messaggio di tipo change. Per indicare che la richiesta di sottoscrizione ha avuto esito negativo, Motore di database crea un messaggio di tipo subscribe. I valori degli altri due attibuti indicano il motivo per cui SQL Server ha creato il messaggio.

Messaggi di tipo change

Quando si verifica un cambiamento che può influire sui risultati di una query, SQL Server produce un messaggio di tipo change. Nella tabella seguente vengono illustrati i messaggi di tipo change:

Source Info Descrizione

data

truncate

Una o più tabelle a cui viene fatto riferimento nella query sono state troncate.

data

insert

SQL Server ha elaborato un'istruzione INSERT su una o più tabelle a cui viene fatto riferimento nella query.

data

update

SQL Server ha elaborato un'istruzione UPDATE su una o più tabelle a cui viene fatto riferimento nella query.

data

delete

SQL Server ha elaborato un'istruzione DELETE su una o più tabelle a cui viene fatto riferimento nella query.

timeout

none

Il timeout della sottoscrizione è scaduto.

object

drop

Uno degli oggetti sottostanti utilizzati dalla query è stato eliminato.

object

alter

Uno degli oggetti sottostanti utilizzati dalla query è stato modificato.

system

restart

SQL Server è stato avviato.

system

error

Si è verificato un errore interno in SQL Server.

system

resource

La sottoscrizione di notifica è stata eliminata a causa dello stato di SQL Server, ad esempio a causa dell'elevato carico di lavoro di un server.

Messaggi di tipo subscribe

Quando SQL Server non può creare una sottoscrizione, il server genera immediatamente un messaggio di tipo subscribe. Nella tabella seguente vengono illustrati i messaggi di tipo subscribe:

Source Info Descrizione

statement

query

Il comando inviato conteneva un'istruzione SELECT non conforme ai requisiti previsti per la notifica delle query.

statement

invalid

Il comando inviato conteneva un'istruzione che non supporta le notifiche (ad esempio un'istruzione INSERT o UPDATE).

statement

previous invalid

Un comando precedente della transazione conteneva un'istruzione che non supporta le notifiche (ad esempio un'istruzione INSERT o UPDATE).

statement

set options

Al momento dell'invio del comando, le opzioni di connessione non erano configurate in modo appropriato.

statement

isolation

Livello di isolamento non valido per la notifica delle query (livello di isolamento dello snapshot).

statement

query template limit

Una tabella specificata nella query ha raggiunto il numero massimo di modelli interni.

Vedere anche

Altre risorse

Using XML Schemas

Guida in linea e informazioni

Assistenza su SQL Server 2005