sys.dm_qn_subscriptions (Transact-SQL)
Возвращает сведения об активных подписках на уведомления о запросах на сервере. Можно использовать данное представление для проверки активных подписок на сервере или в указанной базе данных, или проверки указанного участника [системы безопасности] на уровне сервера.
Имя столбца |
Тип данных |
Описание |
||
---|---|---|---|---|
id |
int |
Идентификатор подписки. |
||
database_id |
int |
Идентификатор базы данных, для которой был выполнен запрос уведомлений. Эта база данных хранит информацию, относящуюся к данной подписке. |
||
sid |
varbinary(85) |
Идентификатор безопасности участника [системы безопасности] на уровне сервера, который создал подписку и которому она принадлежит. |
||
object_id |
int |
Идентификатор внутренней таблицы, в которой хранятся данные о параметрах подписки. |
||
created |
datetime |
Дата и время создания подписки. |
||
timeout |
int |
Время ожидания для подписки в секундах. Уведомление будет снабжено меткой, указывающей на то, что оно должно сработать по истечении этого времени.
|
||
status |
int |
Отображает состояние подписки. См. список кодов в таблице под примечаниями. |
Количество элементов связей
От |
К |
На |
Тип |
---|---|---|---|
sys.dm_qn_subscriptions |
sys.databases |
database_id |
многие к одному |
sys.dm_qn_subscriptions |
sys.internal_tables |
object_id |
многие к одному |
Замечания
Код состояния 0 обозначает неопределенное состояние.
Следующие коды состояний обозначают, что подписка сработала из-за изменения.
Код |
Дополнительное состояние |
Сведения |
---|---|---|
65798 |
Подписка сработала из-за изменения данных |
Подписка сработала из-за операции вставки |
65799 |
Подписка сработала из-за изменения данных |
Удаление |
65800 |
Подписка сработала из-за изменения данных |
Обновление |
65801 |
Подписка сработала из-за изменения данных |
Слияние |
65802 |
Подписка сработала из-за изменения данных |
Усечение таблицы |
66048 |
Подписка сработала из-за изменения времени ожидания |
Неопределенный режим INFO |
66315 |
Подписка сработала из-за изменения объекта |
Объект или пользователь удален |
66316 |
Подписка сработала из-за изменения объекта |
Объект изменен |
66565 |
Подписка сработала из-за отсоединения или удаления базы данных |
Перезапуск сервера или базы данных |
66571 |
Подписка сработала из-за отсоединения или удаления базы данных |
Объект или пользователь удален |
66572 |
Подписка сработала из-за отсоединения или удаления базы данных |
Объект изменен |
67341 |
Подписка запущена из-за отсутствия ресурсов на сервере |
Подписка запущена из-за отсутствия ресурсов на сервере |
Следующие коды состояний показывают, что подписку создать не удалось.
Код |
Дополнительное состояние |
Сведения |
---|---|---|
132609 |
Подписка не создана, так как инструкция не поддерживается |
Слишком сложный запрос |
132610 |
Подписка не создана, так как инструкция не поддерживается |
Недопустимая инструкция для подписки |
132611 |
Подписка не создана, так как инструкция не поддерживается |
Недопустимые параметры для подписки |
132612 |
Подписка не создана, так как инструкция не поддерживается |
Неверный уровень изоляции |
132622 |
Подписка не создана, так как инструкция не поддерживается |
Для внутреннего использования |
132623 |
Подписка не создана, так как инструкция не поддерживается |
Превышен предел шаблона на таблицу |
Следующие коды состояний используются внутри системы и классифицируются как режимы check kill и init.
Код |
Дополнительное состояние |
Сведения |
---|---|---|
198656 |
Для внутреннего использования: режимы check kill и init |
Неопределенный режим INFO |
198928 |
Подписка уничтожена |
Подписка сработала из-за присоединения базы данных |
198929 |
Подписка уничтожена |
Подписка сработала из-за удаления пользователя |
198930 |
Подписка уничтожена |
Подписка удалена из-за новой подписки |
198931 |
Подписка уничтожена |
Подписка уничтожена |
199168 |
Подписка активна |
Неопределенный режим INFO |
199424 |
Подписка инициализирована, но пока неактивна |
Неопределенный режим INFO |
Разрешения
Требуется разрешение VIEW SERVER STATE на сервере.
Примечание |
---|
Если у пользователя нет разрешения VIEW SERVER STATE, это представление возвращает данные о принадлежащих текущему пользователю подписках. |
Примеры
А.Возврат активных подписок на уведомления о запросах для текущего пользователя
Следующий пример возвращает активные подписки на уведомления о запросах текущего пользователя. Если пользователь имеет разрешения VIEW SERVER STATE, то возвращаются все активные подписки на сервере.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions;
GO
Б.Возврат активных подписок на уведомления о запросах для указанного пользователя
Следующий пример возвращает активные подписки на уведомления о запросах для подписчика с именем входа Ruth0.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions
WHERE sid = SUSER_SID('Ruth0');
GO
В.Возврат метаданных внутренней таблицы для подписок на уведомления о запросах
Следующий пример возвращает метаданные внутренней таблицы для подписок на уведомления о запросах.
SELECT qn.id AS query_subscription_id
,it.name AS internal_table_name
,it.object_id AS internal_table_id
FROM sys.internal_tables AS it
JOIN sys.dm_qn_subscriptions AS qn ON it.object_id = qn.object_id
WHERE it.internal_type_desc = 'QUERY_NOTIFICATION';
GO
См. также
Справочник
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления, связанные с уведомлениями запросов (Transact-SQL)