sys.dm_qn_subscriptions (Transact-sql)

Etkin sorgu hakkında bilgi, sunucu için bildirim abonelikleri döndürür. Sunucu veya veritabanı etkin abonelikleri denetlemek için veya belirtilen sunucu asıl adı için denetlemek için bu görünümü kullanabilirsiniz.

Sütun adı

Veri türü

Açıklama

ID

int

Bir abonelik Kımlığı.

database_id

int

İçinde bildirim sorgu yürütüldü veritabanı Kımlığı. Bu veritabanı, bu abonelik için ilgili bilgileri depolar.

SID

varbinary(85)

Güvenlik kimliği oluşturulur ve bu abonelik sahibi olan sunucu asıl adı.

object_id

int

Abonelik parametreleri hakkında bilgi depolayan iç tablo Kımlığı.

oluşturulan

datetime

Tarih ve abonelik oluşturulduğu saat.

zaman aşımı

int

Abonelik saniye cinsinden zaman aşımı. Bildirim, bu süre geçtikten sonra yangın için işaretlenir.

NotNot
Gerçek atış süresi belirtilen zaman aşımı büyük olabilir.Ancak, geçersiz kılar bir değişiklik abonelik belirtilen zaman aşımı, ama sonra abonelik pişirilir önce oluşur SQL Serverateş değişikliğin yapıldığı zaman ortaya sağlar.

durumu

int

Abonelik durumunu gösterir. Masanın altında açıklamalar kodları listesi için bkz.

Ilişki Cardinalities

Kaynak

Amacı

Tarih

Tür

sys.dm_qn_subscriptions

sys.Databases

database_id

Çoktan bire

sys.dm_qn_subscriptions

sys.internal_tables

object_id

Çoktan bire

Açıklamalar

Durum kodu 0 tanımlanmamış bir durumu gösterir.

Aşağıdaki durum kodları, bir abonelik bir değişiklik nedeniyle ateş belirtin:

Kodu

Küçük durumu

Bilgi:

65798

Abonelik veri değişti çünkü ateş

Abonelik Ekle tarafından tetiklenen

65799

Abonelik veri değişti çünkü ateş

Sil

65800

Abonelik veri değişti çünkü ateş

Güncelleştirme

65801

Abonelik veri değişti çünkü ateş

Birleştirme

65802

Abonelik veri değişti çünkü ateş

TRUNCATE table

66048

Zaman aşımı süresi için ateş abonelik

Tanımsız bilgi modu

66315

Abonelik nesnesi değişti çünkü ateş

nesnenin veya kullanıcının çıkarıldı

66316

Abonelik nesnesi değişti çünkü ateş

Nesne değiştirilmiş

66565

Abonelik veritabanı ilişkisi kesildi veya bırakılan çünkü ateş

Sunucu ya da yeniden db

66571

Abonelik veritabanı ilişkisi kesildi veya bırakılan çünkü ateş

nesnenin veya kullanıcının çıkarıldı

66572

Abonelik veritabanı ilişkisi kesildi veya bırakılan çünkü ateş

Nesne değiştirilmiş

67341

Abonelik tetiklenen yetersizliği nedeniyle od sunucudaki kaynakları

Abonelik tetiklenen yetersizliği nedeniyle od sunucudaki kaynakları

Aşağıdaki durum kodları, bir abonelik oluşturulan başarısız olduğunu belirten:

Kodu

Küçük durumu

Bilgi:

132609

Deyim desteklenmediğinden abonelik oluşturulamadı

Sorgu çok karmaşık

132610

Deyim desteklenmediğinden abonelik oluşturulamadı

Geçersiz deyimi abonelik

132611

Deyim desteklenmediğinden abonelik oluşturulamadı

Geçersiz abonelik seçeneklerini ayarlama

132612

Deyim desteklenmediğinden abonelik oluşturulamadı

Geçersiz yalıtım düzeyi

132622

Deyim desteklenmediğinden abonelik oluşturulamadı

dahili olarak kullanılır

132623

Deyim desteklenmediğinden abonelik oluşturulamadı

her tablo şablonu sınırı

Aşağıdaki durum kodları, dahili olarak kullanılır ve öldürmek ve init modları kontrol olarak sınıflandırılır:

Kodu

Küçük durumu

Bilgi:

198656

Dahili olarak kullanılan: öldürmek ve init modlarını denetle

Tanımsız bilgi modu

198928

Abonelik yok

DB ekli oldu çünkü ateş abonelik

198929

Abonelik yok

Abonelik kullanıcı bırakıldı çünkü ateş

198930

Abonelik yok

Abonelik bir resubscription nedeniyle bırakıldı

198931

Abonelik yok

Abonelik Öldürüldü

199168

Abonelik etkin

Tanımsız bilgi modu

199424

Abonelik başlatıldı ancak henüz aktif

Tanımsız bilgi modu

İzinler

Sunucu üzerindeki VIEW server state izni gerektirir.

[!NOT]

Kullanıcı VIEW server state izni varsa, bu görünüm, geçerli kullanıcıya ait Abonelikleri hakkında bilgi verir.

Örnekler

A.Geçerli kullanıcı için etkin sorguyu bildirimi abonelikleri döndürür

Aşağıdaki örnek, geçerli kullanıcı bildirimi abonelikleri için etkin sorgu döndürür. Kullanıcı VIEW server state izni varsa, sunucu tüm etkin abonelikleri döndürür.

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

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

B.Belirtilen kullanıcı için etkin sorguyu bildirimi abonelikleri döndürme

Aşağıdaki örnek verir etkin sorguyu bildirimi abonelikleri abone oturum açma tarafından Ruth0.

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

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

C.Sorgu bildirimi abonelikleri için iç tablo meta veri döndürme

Aşağıdaki örnek, sorgu bildirimi abonelikleri için iç tablo meta verileri verir.

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

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

Ayrıca bkz.

Başvuru

Dinamik yönetimi görünümler ve işlevler (Transact-sql)

Sorgu bildirimleri ilgili dinamik yönetim görünümleri (Transact-sql)

Sorgu bildirim aboneliği (Transact-sql) ÖLDÜRMEK

Diğer Kaynaklar

Using Query Notifications

Internal Tables