Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Änderungsbenachrichtigung mit SQL Server 2008

Notification Services ist veraltet, aber Sie möchten es sowieso nicht verwenden.

In einigen Szenarien können Sie Service Broker-Meldungen in Erwägung ziehen; die Details hängen von Ihrer App ab.

In den meisten Fällen können Sie wahrscheinlich SqlDependency oder SqlCacheDependency verwenden. Sie funktionieren so, dass Sie ein SqlDependency-Objekt in Ihre Abfrage einschließen, wenn Sie sie ausgeben. Die Abfrage kann ein einzelnes SELECT oder eine komplexe Gruppe von Befehlen in einer gespeicherten Prozedur sein.

Wenn später ein anderer Webserver oder Benutzer oder eine Webseite eine Änderung an der Datenbank vornimmt, die möglicherweise dazu führt, dass sich die Ergebnisse der vorherigen Abfrage ändern, sendet SQL Server eine Benachrichtigung an alle Server, die über registrierte SqlDependency-Objekte verfügen. Sie können entweder Code registrieren, der ausgeführt wird, wenn diese Ereignisse eintreffen, oder das Ereignis kann einfach einen Eintrag im Cache löschen.

Obwohl Sie Service Broker für die Verwendung von SqlDependency aktivieren müssen, müssen Sie nicht explizit damit interagieren. Sie können es jedoch auch als alternativen Mechanismus verwenden; Betrachten Sie es eher als ein dauerhaftes Messaging-System, das die Reihenfolge der Nachrichten und die einmalige Zustellung garantiert.

Die Details zur Verwendung dieser Systeme sind für einen Forumsbeitrag etwas lang. Sie können entweder nach ihnen suchen, oder ich liefere auch Beispiele in meinem Buch (Ultra-Fast ASP.NET).