sys.dm_qn_subscriptions

更新日期: 2006 年 12 月 12 日

返回服务器中活动查询通知订阅的有关信息。可以使用此视图检查服务器或指定数据库中的活动订阅,或者检查指定服务器主体。

列名

数据类型

说明

id

int

订阅的 ID。

database_id

int

执行通知查询所在数据库的 ID。该数据库存储该订阅的相关信息。

sid

varbinary(85)

创建并拥有该订阅的服务器主体的安全 ID。

object_id

int

存储有关订阅参数信息的内部表的 ID。

created

datetime

订阅创建的日期和时间。

timeout

int

订阅超时。在经过该时间之后,通知将被标记为激发。

ms187793.note(zh-cn,SQL.90).gif注意:

实际的激发时间可能比指定的超时时间长。但是,如果在指定的超时之后、激发订阅之前发生了使订阅无效的更改,则 SQL Server 会确保激发在发生更改的时候进行。

status

int

指示订阅的状态。

关系基数

对于 类型

sys.dm_qn_subscriptions

sys.databases

database_id

多对一

sys.dm_qn_subscriptions

sys.internal_tables

object_id

多对一

权限

需要对服务器拥有 VIEW SERVER STATE 权限。

ms187793.note(zh-cn,SQL.90).gif注意:
如果用户不具备 VIEW SERVER STATE 权限,该视图将返回当前用户所拥有的订阅的有关信息。

示例

A. 返回当前用户的活动查询通知订阅

以下示例返回当前用户的活动查询通知订阅。如果用户拥有 VIEW SERVER STATE 权限,则将返回服务器中的所有活动订阅。

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

B. 返回指定用户的活动查询通知订阅

以下示例返回通过登录 Ruth0 进行的活动查询通知订阅。

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

C. 返回查询通知订阅的内部表元数据

以下示例返回查询通知订阅的内部表元数据。

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

请参阅

参考

动态管理视图和函数
与查询通知有关的动态管理视图
KILL QUERY NOTIFICATION SUBSCRIPTION (Transact-SQL)

其他资源

使用查询通知
内部表

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 添加了“关系基数”和“示例”部分。