Abfragebenachrichtigungen - dm_qn_subscriptionsQuery Notifications - sys.dm_qn_subscriptions

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Gibt Informationen zu den aktiven Abfragebenachrichtigungsabonnements auf dem Server zurück.Returns information about the active query notifications subscriptions in the server. Diese Sicht können Sie verwenden, um in der Serverdatenbank oder in einer angegebenen Datenbank eine Überprüfung auf aktive Abonnements vorzunehmen oder um auf eine Überprüfung auf einen angegebenen Serverprinzipal vorzunehmen.You can use this view to check for active subscriptions in the server or a specified database, or to check for a specified server principal.

SpaltennameColumn name DatentypData type BeschreibungDescription
idid intint ID eines Abonnements.ID of a subscription.
database_iddatabase_id intint ID der Datenbank, für die die Abfragebenachrichtigung ausgeführt wurde.ID of the database in which the notification query was executed. In dieser Datenbank sind die mit diesem Abonnement verbundenen Informationen gespeichert.This database stores information related to this subscription.
sidsid varbinary(85)varbinary(85) Sicherheits-ID des Serverprinzipals, der dieses Abonnement erstellt hat und besitzt.Security ID of the server principal that created and owns this subscription.
object_idobject_id intint ID der internen Tabelle, in der die Informationen zu Abonnementparametern gespeichert sind.ID of the internal table that stores information about subscription parameters.
createdcreated datetimedatetime Datum und Uhrzeit des Zeitpunktes, an dem das Abonnement erstellt wurde.Date and time that the subscription was created.
timeouttimeout intint Timeout für das Abonnement in Sekunden.Time-out for the subscription in seconds. Die Benachrichtigung wird ausgelöst, nachdem diese Zeit verstrichen ist.The notification will be flagged to fire after this time has elapsed.

Hinweis: Die tatsächliche Zeit der Auslösung kann größer als das angegebene Timeout sein. Wenn jedoch eine Änderung, die erklärt das Abonnement tritt nach dem angegebenen Timeout, aber bevor das Abonnement ausgelöst wird, SQL ServerSQL Server wird sichergestellt, dass das Auslösen zu dem Zeitpunkt erfolgt, die die Änderung vorgenommen wurde.Note: The actual firing time may be greater than the specified time-out. However, if a change that invalidates the subscription occurs after the specified time-out, but before the subscription is fired, SQL ServerSQL Server ensures that firing occurs at the time that the change was made.
statusstatus intint Gibt den Status des Abonnements.Indicates the status of the subscription. Die Liste der Codes finden Sie in der Tabelle unter den Hinweisen.See the table under remarks for the list of codes.

Kardinalität der BeziehungenRelationship Cardinalities

VonFrom BeschreibungTo OnOn TypType
sys.dm_qn_subscriptionssys.dm_qn_subscriptions sys.databasessys.databases database_iddatabase_id n:1Many-to-one
sys.dm_qn_subscriptionssys.dm_qn_subscriptions sys.internal_tablessys.internal_tables object_idobject_id n:1Many-to-one

HinweiseRemarks

Der Statuscode 0 gibt einen nicht definierten Status an.The status code of 0 indicates an undefined status.

Die folgenden Statuscodes geben an, dass ein Abonnement aufgrund einer Änderung ausgelöst wurde:The following status codes indicate that a subscription fired because of a change:

CodeCode Untergeordneter StatusMinor status InfoInfo
6579865798 Abonnement wurde ausgelöst, da sich Daten geändert haben.Subscription fired because data changed Abonnement wurde durch eine Einfügung ausgelöst.Subscription triggered by insert
6579965799 Abonnement wurde ausgelöst, da sich Daten geändert haben.Subscription fired because data changed LöschenDelete
6580065800 Abonnement wurde ausgelöst, da sich Daten geändert haben.Subscription fired because data changed UpdateUpdate
6580165801 Abonnement wurde ausgelöst, da sich Daten geändert haben.Subscription fired because data changed MergeMerge
6580265802 Abonnement wurde ausgelöst, da sich Daten geändert haben.Subscription fired because data changed Tabelle kürzenTruncate table
6604866048 Abonnement wurde ausgelöst, da das Timeout abgelaufen ist.Subscription fired because timeout expired Nicht definierter InfomodusUndefined info mode
6631566315 Abonnement wurde ausgelöst, da sich ein Objekt geändert hat.Subscription fired because object changed Objekt oder Benutzer wurde gelöscht.object or user was dropped
6631666316 Abonnement wurde ausgelöst, da sich ein Objekt geändert hat.Subscription fired because object changed Objekt wurde geändert.object was altered
6656566565 Abonnement wurde ausgelöst, da eine Datenbank getrennt oder gelöscht wurde.Subscription fired because database was detached or dropped Server oder Datenbank wurde neu gestartet.server or db restarted
6657166571 Abonnement wurde ausgelöst, da eine Datenbank getrennt oder gelöscht wurde.Subscription fired because database was detached or dropped Objekt oder Benutzer wurde gelöscht.object or user was dropped
6657266572 Abonnement wurde ausgelöst, da eine Datenbank getrennt oder gelöscht wurde.Subscription fired because database was detached or dropped Objekt wurde geändert.object was altered
6734167341 Abonnement wurde aufgrund von Ressourcenmangel auf dem Server ausgelöst.subscription was triggered because of lack od resources on the server Abonnement wurde aufgrund von Ressourcenmangel auf dem Server ausgelöst.subscription was triggered because of lack od resources on the server

Die folgenden Statuscodes geben an, dass ein Abonnement nicht erstellt wurde:The following status codes indicate that a subscription failed to be created:

CodeCode Untergeordneter StatusMinor status InfoInfo
132609132609 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Abfrage ist zu komplex.Query is too complex
132610132610 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Ungültige Anweisung für Abonnement.Invalid statement for subscription
132611132611 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Ungültige festgelegte Optionen für das Abonnement.Invalid set options for subscription
132612132612 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Ungültige IsolationsstufeInvalid isolation level
132622132622 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Wird intern verwendet.used internally
132623132623 Abonnement konnte nicht erstellt werden, weil die Anweisung nicht unterstützt wird.Subscription creation failed because the statement is not supported Überschreitet den Vorlagengrenzwert pro Tabelle.over the template limit per table

Die folgenden Statuscodes werden intern verwendet und als Check Kill- und Init-Modi klassifiziert:The following status codes are used internally and are classed as check kill and init modes:

CodeCode Untergeordneter StatusMinor status InfoInfo
198656198656 Intern verwendet: Check Kill- und Init-ModusUsed internally: check kill and init modes Nicht definierter InfomodusUndefined info mode
198928198928 Abonnement wurde zerstört.Subscription was destroyed Abonnement wurde ausgelöst, da eine Datenbank angefügt wurde.Subscription fired because db was attached
198929198929 Abonnement wurde zerstört.Subscription was destroyed Abonnement wurde ausgelöst, da ein Benutzer gelöscht wurde.Subscription fired because user was dropped
198930198930 Abonnement wurde zerstört.Subscription was destroyed Abonnement wurde aufgrund eines erneuten Abonnements gelöscht.Subscription was dropped because of a resubscription
198931198931 Abonnement wurde zerstört.Subscription was destroyed Abonnement wurde abgebrochen.subscription was killed
199168199168 Abonnement ist aktiv.Subscription is active Nicht definierter InfomodusUndefined info mode
199424199424 Abonnement wurde initialisiert, ist aber noch nicht aktiv.Subscription initialized but not yet active Nicht definierter InfomodusUndefined info mode

BerechtigungenPermissions

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.Requires VIEW SERVER STATE permission on server.

Hinweis

Falls der Benutzer die VIEW SERVER STATE-Berechtigung nicht besitzt, gibt diese Sicht Informationen zu Abonnements zurück, die sich im Besitz des aktuellen Benutzers befinden.If the user does not have VIEW SERVER STATE permission, this view returns information about subscriptions owned by current user.

BeispieleExamples

A.A. Zurückgeben von aktiven Abfragebenachrichtigungsabonnements für den aktuellen BenutzerReturn active query notification subscriptions for the current user

Im folgenden Beispiel werden die aktiven Abfragebenachrichtigungsabonnements des aktuellen Benutzers zurückgegeben.The following example returns the active query notification subscriptions of the current user. Wenn der Benutzer über VIEW SERVER STATE-Berechtigungen verfügt, werden alle aktiven Abonnements auf dem Server zurückgegeben.If the user has VIEW SERVER STATE permissions, all active subscriptions in the server are returned.

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

B.B. Zurückgeben von aktiven Abfragebenachrichtigungsabonnements für einen angegebenen BenutzerReturning active query notification subscriptions for a specified user

Im folgenden Beispiel werden die aktiven Abfragebenachrichtigungsabonnements zurückgegeben, die vom Anmeldenamen Ruth0 abonniert wurden.The following example returns the active query notification subscriptions subscribed by login Ruth0.

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

C.C. Zurückgeben von internen Tabellenmetadaten für AbfragebenachrichtigungsabonnementsReturning internal table metadata for query notification subscriptions

Im folgenden Beispiel werden die Metadaten interner Tabellen für Abfragebenachrichtigungsabonnements zurückgegeben.The following example returns the internal table metadata for query notification subscriptions.

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  

Siehe auchSee Also

Dynamische Verwaltungssichten und -funktionen (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Abfragen von Abfragebenachrichtigungen verbundene dynamische Verwaltungssichten (Transact-SQL) Query Notifications Related Dynamic Management Views (Transact-SQL)
KILL QUERY NOTIFICATION SUBSCRIPTION (Transact-SQL)KILL QUERY NOTIFICATION SUBSCRIPTION (Transact-SQL)