Freigeben über


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:

  1. 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.

  2. 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.

  3. 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

Verwenden von Abfragebenachrichtigungen

Verwenden von Abfragebenachrichtigungen

Service Broker

Service Broker

Service Broker (InfoCenter für Entwickler)

Entwicklung (Service Broker)

In diesem Abschnitt

Referenz

Siehe auch

Weitere Ressourcen

SQL Server und ADO.NET