Запрос уведомления - sys.dm_qn_subscriptionsQuery Notifications - sys.dm_qn_subscriptions

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Возвращает сведения об активных подписках на уведомления о запросах на сервере.Returns information about the active query notifications subscriptions in the server. Можно использовать данное представление для проверки активных подписок на сервере или в указанной базе данных, или проверки указанного участника [системы безопасности] на уровне сервера.You can use this view to check for active subscriptions in the server or a specified database, or to check for a specified server principal.

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
идентификаторid intint Идентификатор подписки.ID of a subscription.
database_iddatabase_id intint Идентификатор базы данных, для которой был выполнен запрос уведомлений.ID of the database in which the notification query was executed. Эта база данных хранит информацию, относящуюся к данной подписке.This database stores information related to this subscription.
ИД безопасностиsid varbinary(85)varbinary(85) Идентификатор безопасности участника [системы безопасности] на уровне сервера, который создал подписку и которому она принадлежит.Security ID of the server principal that created and owns this subscription.
object_idobject_id intint Идентификатор внутренней таблицы, в которой хранятся данные о параметрах подписки.ID of the internal table that stores information about subscription parameters.
Созданcreated datetimedatetime Дата и время создания подписки.Date and time that the subscription was created.
timeouttimeout intint Время ожидания для подписки в секундах.Time-out for the subscription in seconds. Уведомление будет снабжено меткой, указывающей на то, что оно должно сработать по истечении этого времени.The notification will be flagged to fire after this time has elapsed.

Примечание. Срабатывание время может быть больше, чем заданное время ожидания. Тем не менее, если изменение, которое аннулирует подписки происходит по истечении указанного времени, но до срабатывания подписки SQL ServerSQL Server обеспечит срабатывание в то время, это изменение было сделано.Note: The actual firing time may be greater than the specified time-out. However, if a change that invalidates the subscription occurs after the specified time-out, but before the subscription is fired, SQL ServerSQL Server ensures that firing occurs at the time that the change was made.
statusstatus intint Отображает состояние подписки.Indicates the status of the subscription. См. список кодов в таблице под примечаниями.See the table under remarks for the list of codes.

Количество элементов связейRelationship Cardinalities

ОтFrom ЧтобыTo Вкл.On TypeType
sys.dm_qn_subscriptionssys.dm_qn_subscriptions sys.databasessys.databases database_iddatabase_id «многие к одному»Many-to-one
sys.dm_qn_subscriptionssys.dm_qn_subscriptions sys.internal_tablessys.internal_tables object_idobject_id «многие к одному»Many-to-one

ПримечанияRemarks

Код состояния 0 обозначает неопределенное состояние.The status code of 0 indicates an undefined status.

Следующие коды состояний обозначают, что подписка сработала из-за изменения.The following status codes indicate that a subscription fired because of a change:

КодCode Дополнительное состояниеMinor status InfoInfo
6579865798 Подписка сработала из-за изменения данныхSubscription fired because data changed Подписка сработала из-за операции вставкиSubscription triggered by insert
6579965799 Подписка сработала из-за изменения данныхSubscription fired because data changed Оператор deleteDelete
6580065800 Подписка сработала из-за изменения данныхSubscription fired because data changed UpdateUpdate
6580165801 Подписка сработала из-за изменения данныхSubscription fired because data changed ОбъединитьMerge
6580265802 Подписка сработала из-за изменения данныхSubscription fired because data changed Усечение таблицыTruncate table
6604866048 Подписка сработала из-за изменения времени ожиданияSubscription fired because timeout expired Неопределенный режим INFOUndefined info mode
6631566315 Подписка сработала из-за изменения объектаSubscription fired because object changed Объект или пользователь удаленobject or user was dropped
6631666316 Подписка сработала из-за изменения объектаSubscription fired because object changed Объект измененobject was altered
6656566565 Подписка сработала из-за отсоединения или удаления базы данныхSubscription fired because database was detached or dropped Перезапуск сервера или базы данныхserver or db restarted
6657166571 Подписка сработала из-за отсоединения или удаления базы данныхSubscription fired because database was detached or dropped Объект или пользователь удаленobject or user was dropped
6657266572 Подписка сработала из-за отсоединения или удаления базы данныхSubscription fired because database was detached or dropped Объект измененobject was altered
6734167341 Подписка запущена из-за отсутствия ресурсов на сервереsubscription was triggered because of lack od resources on the server Подписка запущена из-за отсутствия ресурсов на сервереsubscription was triggered because of lack od resources on the server

Следующие коды состояний показывают, что подписку создать не удалось.The following status codes indicate that a subscription failed to be created:

КодCode Дополнительное состояниеMinor status InfoInfo
132609132609 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Слишком сложный запросQuery is too complex
132610132610 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Недопустимая инструкция для подпискиInvalid statement for subscription
132611132611 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Недопустимые параметры для подпискиInvalid set options for subscription
132612132612 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Неверный уровень изоляцииInvalid isolation level
132622132622 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Для внутреннего использованияused internally
132623132623 Подписка не создана, так как инструкция не поддерживаетсяSubscription creation failed because the statement is not supported Превышен предел шаблона на таблицуover the template limit per table

Следующие коды состояний используются внутри системы и классифицируются как режимы check kill и init.The following status codes are used internally and are classed as check kill and init modes:

КодCode Дополнительное состояниеMinor status InfoInfo
198656198656 Для внутреннего использования: режимы check kill и initUsed internally: check kill and init modes Неопределенный режим INFOUndefined info mode
198928198928 Подписка уничтоженаSubscription was destroyed Подписка сработала из-за присоединения базы данныхSubscription fired because db was attached
198929198929 Подписка уничтоженаSubscription was destroyed Подписка сработала из-за удаления пользователяSubscription fired because user was dropped
198930198930 Подписка уничтоженаSubscription was destroyed Подписка удалена из-за новой подпискиSubscription was dropped because of a resubscription
198931198931 Подписка уничтоженаSubscription was destroyed Подписка уничтоженаsubscription was killed
199168199168 Подписка активнаSubscription is active Неопределенный режим INFOUndefined info mode
199424199424 Подписка инициализирована, но пока неактивнаSubscription initialized but not yet active Неопределенный режим INFOUndefined info mode

РазрешенияPermissions

Требуется разрешение VIEW SERVER STATE для сервера.Requires VIEW SERVER STATE permission on server.

Примечание

Если у пользователя нет разрешения VIEW SERVER STATE, это представление возвращает данные о принадлежащих текущему пользователю подписках.If the user does not have VIEW SERVER STATE permission, this view returns information about subscriptions owned by current user.

ПримерыExamples

A.A. Возврат активных подписок на уведомления о запросах для текущего пользователяReturn active query notification subscriptions for the current user

Следующий пример возвращает активные подписки на уведомления о запросах текущего пользователя.The following example returns the active query notification subscriptions of the current user. Если пользователь имеет разрешения VIEW SERVER STATE, то возвращаются все активные подписки на сервере.If the user has VIEW SERVER STATE permissions, all active subscriptions in the server are returned.

SELECT id, database_id, sid, object_id, created, timeout, status  
FROM sys.dm_qn_subscriptions;  
GO  

Б.B. Возврат активных подписок на уведомления о запросах для указанного пользователяReturning active query notification subscriptions for a specified user

Следующий пример возвращает активные подписки на уведомления о запросах для подписчика с именем входа Ruth0.The following example returns the active query notification subscriptions subscribed by login Ruth0.

SELECT id, database_id, sid, object_id, created, timeout, status  
FROM sys.dm_qn_subscriptions  
WHERE sid = SUSER_SID('Ruth0');  
GO  

В.C. Возврат метаданных внутренней таблицы для подписок на уведомления о запросахReturning internal table metadata for query notification subscriptions

Следующий пример возвращает метаданные внутренней таблицы для подписок на уведомления о запросах.The following example returns the internal table metadata for query notification subscriptions.

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  

См. такжеSee Also

Динамические административные представления и функции (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Запрос уведомления динамические административные представления (Transact-SQL) Query Notifications Related Dynamic Management Views (Transact-SQL)
KILL QUERY NOTIFICATION SUBSCRIPTION (Transact-SQL)KILL QUERY NOTIFICATION SUBSCRIPTION (Transact-SQL)