Compartir a través de


Mensajes de notificación de consulta

Un mensaje de notificación de consulta contiene XML. Cada mensaje incluye el motivo por el que se creó el mensaje y el mensaje de notificación incluido cuando se creó la notificación.

Los atributos del elemento QueryNotification identifican el motivo del mensaje, mientras que el elemento Message contiene el Id. de la notificación correspondiente a la suscripción. Por ejemplo, el documento XML que se muestra más adelante es un mensaje de notificación de consulta completo, con el formato cambiado para facilitar la lectura:

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

Este mensaje de notificación de consulta informa de que una instrucción INSERT cambió los datos de la suscripción con el mensaje, "http://mysite.microsoft.com/catalog.aspx?Category=Cars".

[!NOTA]

Dado que la notificación se distribuye como documento XML, el Database Engine (Motor de base de datos) convierte caracteres que no son válidos en un documento de este tipo. Por ejemplo, si el mensaje enviado con la suscripción contiene el carácter <, el XML devuelto convierte este carácter en &lt;.

Las tablas siguientes muestran los valores para cada atributo. SQL Server sólo genera ciertas combinaciones de atributos. Por ejemplo, dado que un atributo Typechange requiere que se haya creado la suscripción, un atributo Typechange nunca se combina con un atributo Sourcestatement.

Los mensajes de notificación de consulta pueden ser de dos tipos principales, que se distinguen por el valor del atributo Type. Para indicar que los resultados de la consulta han cambiado, el Database Engine (Motor de base de datos) crea un mensaje de tipo change. Para indicar que la solicitud de suscripción ha generado un error, el Database Engine (Motor de base de datos) crea un mensaje de tipo subscribe. Los valores de los otros dos atributos indican el motivo exacto por el que SQL Server ha creado el mensaje.

Mensajes de cambio

Cuando se produce un cambio que puede afectar a los resultados de una consulta, SQL Server genera un mensaje de tipo change. En la siguiente tabla, se describen los mensajes de cambio:

Origen

Información

Descripción

datos

truncate

Se ha truncado al menos una de las tablas a las que se hace referencia en la consulta.

datos

insert

SQL Server procesó una instrucción INSERT en al menos una de las tablas a las que se hace referencia en la consulta.

datos

update

SQL Server procesó una instrucción UPDATE en al menos una de las tablas a las que se hace referencia en la consulta.

datos

delete

SQL Server procesó una instrucción DELETE en al menos una de las tablas a las que se hace referencia en la consulta.

tiempo de espera

none

El tiempo de espera de la suscripción ha expirado.

objeto

drop

Se ha quitado uno de los objetos subyacentes utilizado en la consulta.

objeto

alter

Se ha modificado uno de los objetos subyacentes utilizado en la consulta.

sistema

restart

Se ha iniciado SQL Server.

sistema

error

Se produjo un error interno en SQL Server.

sistema

resource

La suscripción de la notificación se eliminó debido al estado de SQL Server; por ejemplo, un servidor excesivamente cargado.

Mensajes de suscripción

Cuando SQL Server no puede crear una suscripción, el servidor genera inmediatamente un mensaje de tipo subscribe. En la siguiente tabla, se describen los mensajes de tipo subscribe.

Origen

Información

Descripción

instrucción

query

El comando enviado contenía una instrucción SELECT que no cumple los requisitos de la notificación de consulta.

instrucción

invalid

El comando enviado contenía una instrucción que no admite notificaciones (por ejemplo, INSERT o UPDATE).

instrucción

previous invalid

El comando anterior de la transacción contenía una instrucción que no admite notificaciones (por ejemplo, INSERT o UPDATE).

instrucción

set options

Las opciones de conexión no se establecieron correctamente cuando se envió el comando.

instrucción

isolation

El nivel de aislamiento no era válido para la notificación de la consulta (nivel de aislamiento SNAPSHOT).

instrucción

query template limit

Una tabla especificada en la consulta ha alcanzado el número máximo de plantillas internas.

Vea también

Conceptos