Запрос уведомления - sys.dm_qn_subscriptionsQuery Notifications - sys.dm_qn_subscriptions
SQL Server
База данных SQL Azure
Azure Synapse Analytics (хранилище данных SQL)
Parallel Data Warehouse
SQL Server
Azure SQL Database
Azure Synapse Analytics (SQL DW)
Parallel 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)
Обратная связь
Загрузка отзыва...