sys.dm_qn_subscriptions
更新: 2006 年 12 月 12 日
傳回有關伺服器之使用中查詢通知訂閱的資訊。您可以使用這個檢視,檢查伺服器或指定資料庫中是否有使用中的訂閱,或檢查指定的伺服器主體。
資料行名稱
資料類型
描述
id
int
訂閱的識別碼。
database_id
int
執行通知查詢的資料庫識別碼。這個資料庫會儲存與這項訂閱有關的資訊。
sid
varbinary(85)
建立和擁有這項訂閱之伺服器主體的安全性識別碼。
object_id
int
儲存訂閱參數相關資訊的內部資料表識別碼。
created
datetime
建立訂閱的日期和時間。
timeout
int
訂閱逾時。通知會標示為在過了這個時間之後引發。
附註:
實際的引發時間可能會大於指定的逾時值。不過,如果在指定的逾時時間之後,但在訂閱引發之前,執行一項變更讓訂閱無效,SQL Server 會讓引發在變更時發生。
status
int
指出訂閱的狀態。
關聯性基數
來源 | 目的地 | 於 | 類型 |
---|---|---|---|
sys.dm_qn_subscriptions |
sys.databases |
database_id |
多對一 |
sys.dm_qn_subscriptions |
sys.internal_tables |
object_id |
多對一 |
權限
需要伺服器的 VIEW SERVER STATE 權限。
![]() |
---|
如果使用者沒有 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)
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|