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(ja-jp,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(ja-jp,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 日

新しい内容 :
  • 「リレーションシップの基数」および「例」を追加しました。