共用方式為


sys.dm_qn_subscriptions

更新: 2006 年 12 月 12 日

傳回有關伺服器之使用中查詢通知訂閱的資訊。您可以使用這個檢視,檢查伺服器或指定資料庫中是否有使用中的訂閱,或檢查指定的伺服器主體。

資料行名稱

資料類型

描述

id

int

訂閱的識別碼。

database_id

int

執行通知查詢的資料庫識別碼。這個資料庫會儲存與這項訂閱有關的資訊。

sid

varbinary(85)

建立和擁有這項訂閱之伺服器主體的安全性識別碼。

object_id

int

儲存訂閱參數相關資訊的內部資料表識別碼。

created

datetime

建立訂閱的日期和時間。

timeout

int

訂閱逾時。通知會標示為在過了這個時間之後引發。

ms187793.note(zh-tw,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-tw,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 日

新增內容:
  • 新增<關聯性基數>和<範例>章節。