Abfragebenachrichtigungen in SQL Server (ADO.NET)
Aktualisiert: November 2007
Abfragebenachrichtigungen wurden in Microsoft SQL Server 2005 und dem System.Data.SqlClient -Namespace in ADO.NET 2.0 eingeführt. Aufbauend auf der Service Broker-Infrastruktur ermöglichen Abfragebenachrichtigungen das Benachrichtigen von Anwendungen bei Datenänderungen. Dieses Feature ist besonders nützlich bei Anwendungen, die Informationen aus einer Datenbank zwischenspeichern, z. B. aus einer Webanwendung, und bei Änderungen von Quelldaten benachrichtigt werden müssen.
Mithilfe von ADO.NET können Abfragebenachrichtigungen auf dreierlei Weise implementiert werden:
Die konkrete Implementierung wird von der SqlNotificationRequest -Klasse bereitgestellt, die serverseitige Funktionen verfügbar macht und das Ausführen von Befehlen mit einer Benachrichtigungsanforderung ermöglicht.
Für die übergeordnete Implementierung ist die SqlDependency -Klasse zuständig. Diese Klasse stellt eine allgemeine Abstraktion der Benachrichtigungsfunktionalität zwischen der Quellanwendung und SQL Server bereit, die die Verwendung einer Abhängigkeit ermöglicht, um Änderungen im Server zu erkennen. In den meisten Fällen ist dies die einfachste und effektivste Art, die SQL Server-Benachrichtigungsfunktionen verwalteter Clientanwendungen mithilfe des .NET Framework-Datenanbieters für SQL Server wirkungsvoll zu nutzen.
Außerdem können Webanwendungen, die mithilfe von ASP.NET 2.0 oder höher erstellt wurden, die SqlCacheDependency-Hilfsklassen verwenden.
Abfragebenachrichtigungen werden für Anwendungen verwendet, die Anzeigen oder Zwischenspeicherungen bei Änderungen der zugrunde liegenden Daten aktualisieren müssen. Microsoft SQL Server 2005 ermöglicht .NET Framework-Anwendungen, einen Befehl an SQL Server zu senden und eine Benachrichtigung anzufordern, sobald bei der Ausführung desselben Befehls Resultsets produziert werden, die sich von den ursprünglich abgerufenen unterscheiden. Auf dem Server generierte Benachrichtigungen werden über Warteschlangen zur späteren Verarbeitung gesendet.
Benachrichtigungen können für SELECT -Anweisungen und für EXECUTE -Anweisungen eingerichtet werden. Bei Verwendung einer EXECUTE-Anweisung registriert SQL Server eine Benachrichtigung für den ausgeführten Befehl und nicht für die EXECUTE-Anweisung selbst. Der Befehl muss den Anforderungen und Einschränkungen einer SELECT-Anweisung gerecht werden. Wenn ein Befehl, der eine Benachrichtigung registriert, mehr als eine Anweisung enthält, erstellt das Datenbankmodul für jede Anweisung im Stapel eine Benachrichtigung.
Weitere Informationen über Abfragebenachrichtigungen und SQL Server Service Broker finden Sie unter den Links zu Themen in der SQL Server-Onlinedokumentation.
SQL Server 2005-Onlinedokumentation |
SQL Server 2008-Onlinedokumentation |
---|---|
In diesem Abschnitt
Aktivieren von Abfragebenachrichtigungen (ADO.NET)
Erläutert die Verwendung von Abfragebenachrichtigungen und informiert über die Anforderungen, die für deren Aktivierung und Verwendung erfüllt sein müssen.'SqlDependency' in einer ASP.NET-Anwendung (ADO.NET)
Zeigt, wie Sie Abfragebenachrichtigungen von einer ASP.NET-Anwendung aus verwenden können.Erkennen von Änderungen mit 'SqlDependency' (ADO.NET)
Zeigt, wie Sie erkennen können, dass sich Abfrageergebnisse von den ursprünglich empfangenen Abfrageergebnissen unterscheiden.'SqlCommand'-Ausführung mit einer 'SqlNotificationRequest' (ADO.NET)
Zeigt, wie ein SqlCommand -Objekt so konfiguriert werden kann, dass es mit einer Abfragebenachrichtigung arbeitet.
Referenz
SqlNotificationRequest
Beschreibt die SqlNotificationRequest -Klasse und alle Member dieser Klasse.SqlDependency
Beschreibt die SqlDependency -Klasse und alle Member dieser Klasse.SqlCacheDependency
Beschreibt die SqlCacheDependency -Klasse und alle Member dieser Klasse.