Сообщения уведомления о запросе

Сообщение уведомления о запросе содержит XML-данные. Каждое сообщение содержит сведения о причинах его создания, а также сообщение уведомления, включенное в процессе создания уведомления.

Атрибуты элемента QueryNotification указывают причину отсылки сообщения, а элемент Message содержит идентификатор уведомления для подписки. Например, следующий XML-документ содержит полное сообщение уведомления о запросе, представленное в удобном для чтения виде.

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

Данное сообщение уведомления о запросе содержит сведения о том, что в результате выполнения инструкции INSERT произошло изменение данных подписки: http://mysite.microsoft.com/catalog.aspx?Category=Cars.

ПримечаниеПримечание

Так как уведомление отсылается в виде XML-документа, то компонент Database Engine заменяет символы, неподдерживаемые данным форматом. Например, если сообщение, переданное вместе с подпиской, содержит символ <, возвращаемый XML преобразует его в символ &lt;.

В следующей таблице приведены значения каждого атрибута. В SQL Server используются только определенные сочетания атрибутов. Например, поскольку атрибут Type со значением change требует создания подписки, он не может быть использован совместно с атрибутом Source, имеющим значение statement.

Сообщения уведомлений о запросе подразделяются на две основные группы в зависимости от значения атрибута Type. Чтобы указать на изменение результатов запроса, компонент Database Engine создает сообщение типа change. Чтобы уведомить об ошибке запроса подписки, компонент Database Engine создает сообщение типа subscribe. Значения двух других атрибутов указывают точную причину, почему SQL Server создал это сообщение.

Сообщения об изменениях

Если в SQL Server происходит изменение, которое может повлиять на результаты запроса, то создается сообщение типа change. В следующей таблице приведены описания сообщений об изменениях.

Источник

Сведения

Описание

data

truncate

Одна или несколько таблиц, к которым обращается запрос, были усечены.

data

insert

SQL Server выполнил инструкцию INSERT для одной или нескольких таблиц, указанных в запросе.

data

update

SQL Server выполнил инструкцию UPDATE для одной или нескольких таблиц, указанных в запросе.

data

delete

SQL Server выполнил инструкцию DELETE для одной или нескольких таблиц, указанных в запросе.

timeout

none

Истекло время ожидания подписки.

object

drop

Один из базовых объектов, используемых запросом, был удален.

object

alter

Один из базовых объектов, используемых запросом, был изменен.

system

restart

SQL Server был запущен.

system

error

В SQL Server произошла внутренняя ошибка.

system

resource

Подписка на уведомление была удалена из-за состояния SQL Server, например из-за сильной загруженности сервера.

Сообщения о подписках

Если SQL Server не может создать подписку, на сервере сразу же создается сообщение типа subscribe. В следующей таблице приведены описания сообщений subscribe.

Источник

Сведения

Описание

statement

query

Полученная команда содержит инструкцию SELECT, которая не удовлетворяет требованиям уведомления о запросах.

statement

invalid

Полученная команда содержит инструкцию, которая не поддерживает уведомления (например инструкция INSERT или UPDATE).

statement

previous invalid

Предыдущая команда в транзакции содержит инструкцию, которая не поддерживает уведомления (например инструкция INSERT или UPDATE).

statement

set options

При отправке команды неправильно указаны параметры соединения.

statement

isolation

Уровень изоляции недействителен для уведомления о запросе (уровень изоляции SNAPSHOT).

statement

query template limit

Количество внутренних шаблонов в заданной запросом таблице превысило максимально допустимое значение.

См. также

Основные понятия