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 .
Uwaga:
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