Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Returnerar information om de aktiva frågenotifikationsprenumerationerna i servern. Du kan använda denna vy för att kontrollera aktiva prenumerationer på servern eller en specificerad databas, eller för att kontrollera en specificerad serverprincip.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| id | int | ID på en prenumeration. |
| database_id | int | ID för databasen där notifikationsfrågan kördes. Denna databas lagrar information relaterad till denna prenumeration. |
| Sid | varbinary(85) | Säkerhets-ID för serverhuvudpersonen som skapade och äger denna prenumeration. |
| object_id | int | ID för den interna tabellen som lagrar information om prenumerationsparametrar. |
| skapad | datetime | Datum och tid då prenumerationen skapades. |
| timeout | int | Timeout för prenumerationen om några sekunder. Meddelandet kommer att flaggas som avfyra efter denna tid. Observera: Den faktiska avfyrningstiden kan vara längre än den angivna timeouten. Men om en ändring som ogiltigförklarar prenumerationen sker efter den angivna timeouten, men innan prenumerationen avslutas, säkerställer SQL Server att avslutningen sker vid tidpunkten då ändringen gjordes. |
| Status | int | Indikerar statusen för prenumerationen. Se tabellen under kommentarer för listan över koder. |
Relationskardinaliteter
| From | To | On | Type |
|---|---|---|---|
| sys.dm_qn_subscriptions | sys.databases | database_id | Många-till-en |
| sys.dm_qn_subscriptions | sys.internal_tables | object_id | Många-till-en |
Remarks
Statuskoden 0 indikerar en odefinierad status.
Följande statuskoder indikerar att en prenumeration avslutades på grund av en ändring:
| Kod | Mindre status | Info |
|---|---|---|
| 65798 | Prenumerationen avslutades eftersom data ändrades | Prenumeration triggad av insättning |
| 65799 | Prenumerationen avslutades eftersom data ändrades | Ta bort |
| 65800 | Prenumerationen avslutades eftersom data ändrades | Update |
| 65801 | Prenumerationen avslutades eftersom data ändrades | Merge |
| 65802 | Prenumerationen avslutades eftersom data ändrades | Trunkeringstabell |
| 66048 | Prenumerationen avslutades eftersom timeout gick ut | Odefinierat informationsläge |
| 66315 | Prenumerationen avslutades eftersom objektet ändrades | objekt eller användare togs bort |
| 66316 | Prenumerationen avslutades eftersom objektet ändrades | Föremålet ändrades |
| 66565 | Prenumerationen avslutades eftersom databasen kopplades bort eller tappades | Server eller databas startades om |
| 66571 | Prenumerationen avslutades eftersom databasen kopplades bort eller tappades | objekt eller användare togs bort |
| 66572 | Prenumerationen avslutades eftersom databasen kopplades bort eller tappades | Föremålet ändrades |
| 67341 | prenumerationen utlöstes på grund av brist på resurser på servern | prenumerationen utlöstes på grund av brist på resurser på servern |
Följande statuskoder indikerar att en prenumeration inte skapades:
| Kod | Mindre status | Info |
|---|---|---|
| 132609 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | Frågan är för komplex |
| 132610 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | Ogiltigt kontoutdrag för prenumeration |
| 132611 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | Ogiltiga setalternativ för prenumeration |
| 132612 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | Ogiltig isoleringsnivå |
| 132622 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | Används internt |
| 132623 | Prenumerationsskapandet misslyckades eftersom uttalandet inte stöds | över mallgränsen per tabell |
Följande statuskoder används internt och klassificeras som check kill och init-lägen:
| Kod | Mindre status | Info |
|---|---|---|
| 198656 | Används internt: kontrollera kill och init-lägen | Odefinierat informationsläge |
| 198928 | Prenumerationen förstördes | Prenumerationen avslutades eftersom databasen var kopplad |
| 198929 | Prenumerationen förstördes | Prenumerationen avskedades eftersom användaren tappades |
| 198930 | Prenumerationen förstördes | Prenumerationen avbröts på grund av en omteckning |
| 198931 | Prenumerationen förstördes | prenumerationen lades ner |
| 199168 | Prenumerationen är aktiv | Odefinierat informationsläge |
| 199424 | Prenumeration initierad men ännu inte aktiv | Odefinierat informationsläge |
Permissions
Kräver VIEW SERVER STATE-behörighet på servern.
Note
Om användaren inte har VIEW SERVER STATE-behörighet returnerar denna vy information om prenumerationer som ägs av nuvarande användare.
Behörigheter för SQL Server 2022 och senare
Kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.
Examples
A. Returnera aktiva frågenotifikationsprenumerationer för den nuvarande användaren
Följande exempel returnerar de aktiva frågenotifikationsprenumerationerna för den aktuella användaren. Om användaren har VIEW SERVER STATE-behörigheter returneras alla aktiva prenumerationer på servern.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions;
GO
B. Returnera aktiva frågenotifikationsprenumerationer för en specificerad användare
Följande exempel returnerar de aktiva frågenotifikationsprenumerationerna som prenumereras på genom inloggning Ruth0.
SELECT id, database_id, sid, object_id, created, timeout, status
FROM sys.dm_qn_subscriptions
WHERE sid = SUSER_SID('Ruth0');
GO
C. Returnera intern tabellmetadata för prenumerationer på frågeaviseringar
Följande exempel returnerar den interna tabellmetadata för prenumerationer på frågenotifikationer.
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
Se även
Dynamiska hanteringsvyer och funktioner (Transact-SQL)
Frågeaviseringar relaterade till dynamiska hanteringsvyer (Transact-SQL)
PRENUMERATION PÅ KILL QUERY NOTIFICATION (Transact-SQL)