Udostępnij za pośrednictwem


sys.dm_qn_subscriptions (języka Transact-SQL)

Zwraca informacje o aktywnej kwerendy powiadomień subskrypcji na serwerze.Aby sprawdzić, czy aktywne subskrypcje serwer lub w określonej bazie danych lub aby sprawdzić, czy podmiot określonego serwera, można użyć tego widoku.

Nazwa kolumny

Typ danych

Opis

Identyfikator

int

Identyfikator subskrypcja.

database_id

int

Identyfikator bazy danych, w której wykonano kwerendę powiadomienie .Ta baza danych przechowuje informacje dotyczące tej subskrypcja.

Identyfikator SID

varbinary(85)

Identyfikator zabezpieczeń serwera głównego zobowiązanego, utworzony i jest właścicielem tej subskrypcja.

object_id

int

Identyfikator wewnętrznej tabela są przechowywane informacje o parametrach subskrypcja .

utworzone

datetime

Data i czas utworzenia subskrypcja .

limit czasu

int

Limit czasu dla subskrypcja w sekundach.powiadomienie zostanie oznaczony na ogień, po upływie tego czas .

UwagaUwaga:
Wypalanie rzeczywisty czas może być większa niż określony czas-limit.Jeśli jednak zmiany, która unieważnia subskrypcja wystąpi po określonym czas-out, ale przed subskrypcja jest uruchamiany, SQL Server daje pewność, że opalanych występuje w czas dokonania zmiany.

Stan

int

Wskazuje stan subskrypcja.Zobacz tabela pod uwagi listę kodów.

Relacja Cardinalities

Z

Aby

Na

Typ

sys.dm_qn_subscriptions

sys.Databases

database_id

Wiele do jednego

sys.dm_qn_subscriptions

sys.internal_tables

object_id

Wiele do jednego

Uwagi

Kod stanu 0 wskazuje stan undefined.

Następujące kody stanu wskazuje, że subskrypcja uruchamiany ze względu na zmianę:

Kod

Stan pomocnicze

Informacje o

65798

Uruchamiany, ponieważ zmienił się dane subskrypcji

Subskrypcja wyzwolone przez wstawianie

65799

Uruchamiany, ponieważ zmienił się dane subskrypcji

Usuń

65800

Uruchamiany, ponieważ zmienił się dane subskrypcji

Aktualizacja

65801

Uruchamiany, ponieważ zmienił się dane subskrypcji

Korespondencji seryjnej

65802

Uruchamiany, ponieważ zmienił się dane subskrypcji

Obcinanie tabela

66048

Uruchamiany, ponieważ upłynął limit czasu subskrypcji

Tryb Niezdefiniowany info

66315

Uruchamiany, ponieważ zmienił się obiekt subskrypcji

obiekt lub użytkownik został usunięty

66316

Uruchamiany, ponieważ zmienił się obiekt subskrypcji

obiekt został zmieniony.

66565

Opalane subskrypcji, ponieważ bazy danych został odłączony lub porzucone

serwer lub ponownym uruchomieniu db

66571

Opalane subskrypcji, ponieważ bazy danych został odłączony lub porzucone

obiekt lub użytkownik został usunięty

66572

Opalane subskrypcji, ponieważ bazy danych został odłączony lub porzucone

obiekt został zmieniony.

67341

subskrypcja został wywołany z powodu braku od zasobów na serwerze

subskrypcja został wywołany z powodu braku od zasobów na serwerze

Następujące kody stanu wskazują, że nie można utworzyć subskrypcja :

Kod

Stan pomocnicze

Informacje o

132609

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

Kwerenda jest zbyt złożona

132610

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

Nieprawidłowa instrukcja subskrypcja

132611

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

Nieprawidłowy zestaw opcji dla subskrypcja

132612

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

Nieprawidłowy poziom izolacji

132622

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

używane wewnętrznie

132623

Tworzenie subskrypcji nie powiodło się, ponieważ instrukcja nie jest obsługiwany.

przekracza limit szablonu tabela

Następujące kody stanu są używane wewnętrznie i są sklasyfikowane, jak sprawdzić niszczący i init tryby:

Kod

Stan pomocnicze

Informacje o

198656

Używane wewnętrznie: Sprawdź, czy niszczący i init trybów

Tryb Niezdefiniowany info

198928

Subskrypcja została zniszczona.

Opalane subskrypcji, ponieważ był dołączony db

198929

Subskrypcja została zniszczona.

Opalane subskrypcji, ponieważ użytkownik został usunięty

198930

Subskrypcja została zniszczona.

Subskrypcja została usunięta z powodu resubscription

198931

Subskrypcja została zniszczona.

zostało poddane ubojowi sanitarnemusubskrypcja

199168

Subskrypcja jest aktywna

Tryb Niezdefiniowany info

199424

Subskrypcji zainicjowane, ale nie zostały jeszcze aktywny

Tryb Niezdefiniowany info

Uprawnienia

Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.

Ostrzeżenie

Jeśli użytkownik nie ma uprawnień Wyświetlanie stanu serwera, w tym widoku zwraca informacje o subskrypcji posiadane przez bieżącego użytkownika.

Przykłady

A.Powrót do subskrypcji powiadomienie aktywnych kwerend dla bieżącego użytkownika

Poniższy przykład zwraca aktywnej kwerendy powiadomienie subskrypcji bieżącego użytkownika.Jeśli użytkownik ma uprawnienia Wyświetlanie stanu serwera, zwracane są wszystkie aktywne subskrypcje na serwerze.

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

B.Zwracanie aktywnej kwerendy powiadomienie subskrypcji dla określonego użytkownika

Poniższy przykład zwraca aktywnej kwerendy subskrypcje powiadomienie subskrybowane przez logowania Ruth0.

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

C.Zwracanie wewnętrznej tabela metadane dla subskrypcji powiadomienie kwerendy

Poniższy przykład zwraca wewnętrznej tabela metadane dla subskrypcji powiadomienie kwerendy.

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