Freigeben über


Informationen zur Änderungsnachverfolgung (SQL Server)

Die Änderungsnachverfolgung ist eine einfache Lösung, die einen effizienten Änderungsverfolgungsmechanismus für Anwendungen bietet. Normalerweise mussten Anwendungsentwickler benutzerdefinierte Mechanismen zur Änderungsnachverfolgung implementieren, damit die Anwendungen Änderungen an Daten in einer Datenbank abfragen und auf Informationen im Zusammenhang mit den Änderungen zugreifen konnten. Das Erstellen dieser Mechanismen hat in der Regel viel Arbeit und häufig mit einer Kombination aus Triggern, timestamp Spalten, neuen Tabellen zum Speichern von Nachverfolgungsinformationen und benutzerdefinierten Bereinigungsprozessen verbunden.

Die Anforderungen an die Menge erforderlicher Informationen zu den Änderungen variieren je nach Anwendungstyp. Anwendungen können die Änderungsnachverfolgung verwenden, um die folgenden Fragen zu den an einer Benutzertabelle vorgenommenen Änderungen zu beantworten:

  • Welche Zeilen wurden in einer Benutzertabelle geändert?

    • Es ist nur die Tatsache von Belang, dass eine Zeile geändert wurde, nicht jedoch, wie oft die Zeile geändert wurde oder welche Werte bei Zwischenänderungen festgelegt wurden.

    • Die aktuellen Daten können direkt aus der nachverfolgten Tabelle abgerufen werden.

  • Wurde eine Zeile geändert?

    • Die Tatsache, dass eine Zeile geändert wurde, und Informationen zu der Änderung müssen verfügbar sein und zum Zeitpunkt der Änderung in derselben Transaktion aufgezeichnet werden.

Hinweis

Wenn eine Anwendung Informationen zu allen vorgenommenen Änderungen und den Zwischenwerten der geänderten Daten erfordert, kann die Verwendung der Änderungsdatenerfassung anstelle der Änderungsnachverfolgung geeignet sein. Weitere Informationen finden Sie unter Informationen zu Change Data Capture (SQL Server).

One-Way- und Two-Way-Synchronisierungsanwendungen

Anwendungen, die Daten mit einer Instanz der SQL Server-Datenbank-Engine synchronisieren müssen, müssen in der Lage sein, Änderungen abzufragen. Die Änderungsnachverfolgung kann sowohl als Grundlage für unidirektionale als auch für bidirektionale Synchronisierungsanwendungen verwendet werden.

One-Way Synchronisierungsanwendungen

Unidirektionale Synchronisierungsanwendungen, z. B. eine Client- oder Zwischenspeicherungsanwendung auf mittlerer Ebene, können erstellt werden, die die Änderungsnachverfolgung verwenden. Wie in der folgenden Abbildung dargestellt, müssen für eine Zwischenspeicherungsanwendung Daten in Datenbank-Engine gespeichert und in anderen Datenspeichern zwischengespeichert werden. Die Anwendung muss in der Lage sein, den Cache auf dem aktuellen Stand zu halten, indem dieser mit allen an den Datenbanktabellen vorgenommenen Änderungen aktualisiert wird. Es werden keine Änderungen zurück an Datenbank-Engineübergeben.

Zeigt unidirektionale Synchronisierungsanwendungen

Two-Way Synchronisierungsanwendungen

Bidirektionale Synchronisierungsanwendungen können auch erstellt werden, die die Änderungsnachverfolgung verwenden. In diesem Szenario werden die Daten in einer Instanz von Datenbank-Engine mit mindestens einem Datenspeicher synchronisiert. Die Daten in diesen Speichern können aktualisiert werden, und die Änderungen müssen wieder mit Datenbank-Enginesynchronisiert werden.

Zeigt bidirektionale Synchronisierungsanwendungen

Ein gutes Beispiel für eine bidirektionale Synchronisierungsanwendung ist eine gelegentlich verbundene Anwendung. In dieser Art von Anwendung fragt eine Clientanwendung einen lokalen Speicher ab und aktualisiert diesen. Wenn eine Verbindung zwischen einem Client und einem Server verfügbar ist, wird die Anwendung mit einem Server synchronisiert und die geänderten Daten fließen in beide Richtungen.

Die bidirektionale Synchronisierungsanwendungen müssen Konflikte erkennen können. Ein Konflikt tritt auf, wenn die gleichen Daten in beiden Datenspeichern in der Zeit zwischen Synchronisierungen geändert wurden. Mit der Möglichkeit, Konflikte zu erkennen, kann eine Anwendung sicherstellen, dass Änderungen nicht verloren gehen.

Funktionsweise der Änderungsnachverfolgung

Zum Konfigurieren der Änderungsnachverfolgung können Sie DDL-Anweisungen oder SQL Server Management Studio verwenden. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren der Änderungsnachverfolgung (SQL Server). Zum Nachverfolgen von Änderungen muss die Änderungsnachverfolgung zuerst für die Datenbank aktiviert und dann für die Tabellen aktiviert werden, die Sie in dieser Datenbank nachverfolgen möchten. Die Tabellendefinition muss nicht auf irgendeine Weise geändert werden, und es werden keine Trigger erstellt.

Nachdem die Änderungsnachverfolgung für eine Tabelle konfiguriert wurde, führt jede DML-Anweisung, die sich auf Zeilen in der Tabelle auswirkt, dazu, dass Änderungsnachverfolgungsinformationen für jede geänderte Zeile aufgezeichnet werden. Zum Abfragen der geänderten Zeilen und zum Abrufen von Informationen zu den Änderungen können Sie Die Änderungsnachverfolgungsfunktionen verwenden.

Die Werte der Primärschlüsselspalte sind die einzigen Informationen aus der nachverfolgten Tabelle, die zusammen mit der Änderungsinformation aufgezeichnet werden. Diese Werte identifizieren die Zeilen, die geändert wurden. Zum Abrufen der aktuellen Daten dieser Zeilen kann eine Anwendung die Werte der Primärschlüsselspalte verwenden, um die Quelltabelle mit der nachverfolgten Tabelle zu verknüpfen.

Informationen zur Änderung, die an jeder Zeile vorgenommen wurde, können auch mithilfe der Änderungsnachverfolgung abgerufen werden. Der Typ des DML-Vorgangs, der die Änderung (Einfügen, Aktualisieren oder Löschen) oder die Spalten verursacht hat, die als Teil eines Aktualisierungsvorgangs geändert wurden.

Siehe auch

Aktivieren und Deaktivieren der Änderungsnachverfolgung (SQL Server)
Verwenden der Änderungsnachverfolgung (SQL Server)
Verwalten der Änderungsnachverfolgung (SQL Server)
Nachverfolgen von Datenänderungen (SQL Server)