Partilhar via


Mensagens de notificação de consulta

Uma mensagem de notificação de consulta contém XML. Cada mensagem inclui a razão pela qual a mensagem foi criada e a mensagem de notificação incluída no momento em que a notificação foi criada.

Os atributos no elemento QueryNotification identificam a razão da mensagem, enquanto o elemento Message contém a ID de notificação da assinatura. Por exemplo, o documento XML mostrado abaixo é uma mensagem de notificação de consulta completa, reformatada para fins de legibilidade:

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

Esta mensagem de notificação de consulta informa que uma instrução INSERT alterou os dados da assinatura com a mensagem, "http://mysite.microsoft.com/catalog.aspx? Category=Cars".

ObservaçãoObservação

Como a notificação é entregue como um documento XML, o Mecanismo de Banco de Dados ignora caracteres que não são válidos em um documento XML. Por exemplo, se a mensagem enviada com a assinatura contiver o caractere <, o XML retornado ignorará esse caractere para &lt;.

As tabelas seguintes listam os valores para cada atributo. O SQL Server somente produz algumas combinações de atributos. Por exemplo, como um Tipo de alteração requer que a assinatura tenha sido criada, um Tipo de alteração nunca é combinado com uma Origem de instrução.

Mensagens de notificação de consulta ficam em dois tipos principais, distintos pelo valor do atributo Tipo. Para indicar que os resultados da consulta foram alterados, o Mecanismo de Banco de Dados cria uma mensagem de tipo change. Para indicar que a solicitação de assinatura falhou, o Mecanismo de Banco de Dados cria uma mensagem do tipo subscribe. Os valores dos outros dois atributos indicam a razão exata que o SQL Server criou a mensagem.

Mensagens de alteração

Quando ocorre uma alteração que possa afetar os resultados de uma consulta, o SQL Server produz uma mensagem do tipo alteração. A tabela a seguir descreve as mensagens de alteração.

Origem

Informações

Descrição

data

truncate

Uma ou mais das tabelas mencionadas na consulta estavam truncadas.

data

insert

O SQL Server processou uma instrução INSERT em uma ou mais das tabelas mencionadas na consulta.

data

update

O SQL Server processou uma instrução UPDATE em uma ou mais das tabelas mencionadas na consulta.

data

delete

O SQL Server processou uma instrução DELETE em uma ou mais das tabelas mencionadas na consulta.

timeout

none

O tempo limite da assinatura expirou.

object

drop

Um dos objetos subjacentes usado pela consulta foi cancelado.

object

alter

Um dos objetos subjacentes usado pela consulta foi modificado.

system

restart

O SQL Server foi iniciado.

system

error

Ocorreu um erro interno ocorreu no SQL Server.

system

resource

A assinatura de notificação foi removida por causa da condição do SQL Server, por exemplo, um servidor muito carregado.

Mensagens de assinatura

Quando o SQL Server não pode criar uma assinatura, o servidor imediatamente produz uma mensagem do tipo subscribe. A tabela a seguir descreve mensagens de subscribe.

Origem

Informações

Descrição

statement

query

O comando enviado continha uma instrução SELECT que não atende aos requisitos de notificação de consulta.

statement

invalid

O comando enviado continha uma instrução que não suporta notificações (por exemplo, INSERT ou UPDATE).

statement

previous invalid

Um comando anterior na transação continha uma instrução que não dá suporte a notificações (por exemplo, INSERT ou UPDATE).

statement

set options

As opções de conexão não foram configuradas adequadamente quando o comando foi enviado.

statement

isolation

O nível de isolamento não foi válido para notificação de consulta (nível de isolamento de SNAPSHOT).

statement

query template limit

Uma tabela especificada na consulta atingiu o número de máximo de modelos internos.

Consulte também

Conceitos