Vorgehensweise: Vergleichen und Synchronisieren der Daten von zwei Datenbanken

 

Sie können die Daten aus zwei Datenbanken vergleichen.Die zu vergleichenden Datenbanken werden als Quelle und Ziel bezeichnet.

Hinweis

Datenbankprojekte sowie DACPAC- oder BACPAC-Pakete können nicht als Quelle oder Ziel für einen Datenvergleich verwendet werden.

Im Zuge des Datenvergleichs wird ein Skript in der Datenbearbeitungssprache (Data Manipulation Language, DML) generiert, mit dessen Hilfe Sie die unterschiedlichen Datenbanken mittels Aktualisierung einiger oder sämtlicher Daten in der Zieldatenbank synchronisieren können.Die Ergebnisse eines abgeschlossenen Datenvergleichs erscheinen im Datenvergleichsfenster von Visual Studio.

Nach Abschluss des Vergleichs haben Sie folgende Möglichkeiten:

  • Sie können die Unterschiede zwischen den beiden Datenbanken anzeigen.Weitere Informationen finden Sie unter Anzeigen von Datenunterschieden.

  • Sie können das Ziel ganz oder teilweise aktualisieren, sodass es der Quelle entspricht.Weitere Informationen finden Sie unter Synchronisieren von Datenbankdaten.

Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen anhand von Daten aus einer Verweisdatenbank.

Hinweis

Sie können auch das schema von zwei Datenbanken oder von zwei Versionen der gleichen Datenbank vergleichen.Weitere Informationen finden Sie unter Gewusst wie: Vergleichen von Datenbankdefinitionen mithilfe des Schemavergleichs.

Vergleichen von Datenbankdaten

So vergleichen Sie Daten mithilfe des Datenvergleichs-Assistenten

  1. Zeigen Sie im Menü SQL auf Datenvergleich, und klicken Sie anschließend auf Neuer Datenvergleich.

    Der Datenvergleichs-Assistent erscheint.Außerdem wird das Datenvergleichsfenster geöffnet und von Visual Studio automatisch mit einem Namen wie „DataCompare1“ versehen.

  2. Geben Sie die Quell- und die Zieldatenbank an.

    Ist die Liste Quelldatenbank oder die Liste Zieldatenbank leer, klicken Sie auf Neue Verbindung.Geben Sie im Dialogfeld Verbindungseigenschaften den Server mit der Datenbank sowie die Art der Authentifizierung an, die beim Herstellen einer Verbindung mit der Datenbank verwendet werden soll.Klicken Sie anschließend auf OK, um das Dialogfeld Verbindungseigenschaften zu schließen und zum Datenvergleichs-Assistenten zurückzukehren.

    Vergewissern Sie sich auf der ersten Seite des Datenvergleichs-Assistenten, dass die Informationen zu den einzelnen Datenbanken korrekt sind, geben Sie die in die Ergebnisse einzubeziehenden Datensätze an, und klicken Sie anschließend auf Weiter.Die zweite Seite des Datenvergleichs-Assistenten erscheint. Hier finden Sie eine hierarchische Auflistung der Tabellen und Sichten in der Datenbank.

  3. Aktivieren Sie die Kontrollkästchen der zu vergleichenden Tabellen und Sichten.Optional können Sie auch die Knoten für Datenbankobjekte erweitern und dann die Kontrollkästchen der zu vergleichenden Spalten innerhalb dieser Objekte aktivieren.

    Hinweis

    Tabellen und Sichten müssen zwei Kriterien erfüllen, damit sie in der Auflistung erscheinen.Erstens: Die Schemas der Objekte müssen in Quell- und Zieldatenbank gleich sein.Zweitens: In der Liste werden nur Tabellen und Sichten mit Primärschlüssel, eindeutigem Schlüssel, eindeutigem Index oder eindeutiger Einschränkung angezeigt.Werden diese beiden Kriterien von keiner Tabelle oder Sicht erfüllt, ist die Liste leer.

  4. Sind mehrere Schlüssel vorhanden, können Sie mithilfe der Spalte Vergleichsschlüssel den Schlüssel angeben, auf dem der Datenvergleich basieren soll.So können Sie beispielsweise angeben, ob der Vergleich auf der Primärschlüsselspalte oder auf einer anderen Spalte mit (eindeutig identifizierbarem) Schlüssel basieren soll.

  5. Klicken Sie auf Fertig stellen.

    Der Vergleich beginnt.

    Hinweis

    Wenn Sie einen gerade ausgeführten Datenvergleich beenden möchten, öffnen Sie das Menü SQL, klicken Sie auf Datenvergleich, und klicken Sie anschließend auf Datenvergleich beenden.

    Nach Abschluss des Vergleichs können Sie die Unterschiede zwischen den beiden Datenbanken anzeigen.Außerdem können Sie die Daten in der Zieldatenbank ganz oder teilweise aktualisieren, sodass sie den Daten in der Quelldatenbank entsprechen.

So vergleichen Sie Daten mithilfe des Visual Studio-Automatisierungsmodells

  1. Zeigen Sie im Menü Ansicht auf Weitere Fenster, und klicken Sie auf Befehlsfenster.

  2. Geben Sie im Befehlsfenster folgenden Befehl ein:

    Sql.NewDataComparison /SrcServerName sServerName /SrcDatabaseName sDatabaseName /SrcUserName sUserName /SrcPassword sPassword /SrcDisplayName sDisplayName /TargetServerName tServerName /TargetDatabaseName tDatabaseName /TargeUserName tUserName /TargetPassword tPassword /TargetDisplayName tDisplayName
    

    Ersetzen Sie die Platzhalter (sServerName, sDatabaseName, sUserName, sPassword, sDisplayName, tServerName, tDatabaseName, tUserName, tPassword und tDisplayName) durch die Werte für Ihre Quell- und Zieldatenbanken.

    Falls Sie keine Quelle und kein Ziel angeben, wird das Dialogfeld Neuer Datenvergleich angezeigt.Weitere Informationen zu den Parametern für den Befehl „Sql.NewDataComparison“ finden Sie unter Referenz der Automatisierungsbefehle für Datenbankfunktionen von Visual Studio.

    Die Daten in der angegebenen Quell- und Zieldatenbank werden verglichen.Die Ergebnisse erscheinen in einer Datenvergleichssitzung.Weitere Informationen zum Anzeigen von Ergebnissen oder zum Synchronisieren von Daten finden Sie unter Anzeigen von Datenunterschieden bzw. unter Synchronisieren von Datenbankdaten.

Anzeigen von Datenunterschieden

Nach dem Vergleich der Daten in zwei Datenbanken werden alle verglichenen Datenbankobjekte sowie deren Status aufgeführt.Sie können auch Ergebnisse für die Datensätze in den einzelnen Objekten (gruppiert nach Status) anzeigen.Weitere Informationen zu den Statusbezeichnungen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen anhand von Daten aus einer Verweisdatenbank.

Nachdem Sie sich die Unterschiede angesehen haben, können Sie einige oder alle unterschiedlichen, fehlenden oder neuen Objekte oder Datensätze des Ziels aktualisieren, sodass sie der Quelle entsprechen.Weitere Informationen finden Sie unter Synchronisieren von Datenbankdaten.

So zeigen Sie Datenunterschiede an

  1. Vergleichen Sie die Daten einer Quell- und einer Zieldatenbank.Weitere Informationen finden Sie unter Vergleichen von Datenbankdaten.

  2. (Optional) Führen Sie einen oder beide der folgenden Schritte aus:

    • Standardmäßig werden die Ergebnisse für alle Objekte (unabhängig vom jeweiligen Status) angezeigt.Wenn nur Objekte mit einem bestimmten Status angezeigt werden sollen, klicken Sie auf eine Option der Liste Filter.

    • Wenn Sie Ergebnisse für Datensätze innerhalb eines bestimmten Objekts anzeigen möchten, klicken Sie im Hauptergebnisbereich auf das gewünschte Objekt, und klicken Sie anschließend im Bereich mit der Datensatzansicht auf eine Registerkarte.Jede Registerkarte zeigt sämtliche Datensätze innerhalb des Objekts, die einen bestimmten Status besitzen: „Unterschiedliche Datensätze“, „Nur in der Quelle“, „Nur im Ziel“ oder „Identische Datensätze“.Die Daten sind nach Datensatz und Spalte sortiert.

Synchronisieren von Datenbankdaten

Nach dem Vergleich der Daten in zwei Datenbanken können Sie die Datenbanken synchronisieren, indem Sie das Ziel ganz oder teilweise aktualisieren, sodass es der Quelle entspricht.Sie können Daten aus zwei Arten von Datenbankobjekten vergleichen: Tabellen und Sichten.

So aktualisieren Sie Zieldaten mithilfe des Befehls "Updates schreiben"

  1. Vergleichen Sie die Daten einer Quell- und einer Zieldatenbank.Weitere Informationen finden Sie unter Vergleichen von Datenbankdaten.

    Nach Abschluss des Vergleichs werden im Datenvergleichsfenster die Ergebnisse für die verglichenen Objekte aufgeführt.In vier Spalten („Unterschiedliche Datensätze“, „Nur in der Quelle“, „Nur im Ziel“ und „Identische Datensätze“) werden Informationen zu nicht übereinstimmenden Objekten angezeigt.Die Spalten geben für jedes dieser Objekte Aufschluss darüber, wie viele nicht übereinstimmende Datensätze gefunden wurden und wie viele Datensätze bei einer Aktualisierung geändert würden.Diese beiden Zahlen sind zunächst identisch. In Schritt 4 können Sie jedoch festlegen, welche Objekte aktualisiert werden sollen.

    Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen anhand von Daten aus einer Verweisdatenbank.

  2. Klicken Sie in der Tabelle des Datenvergleichsfensters auf eine Zeile.

    Im Detailbereich werden Ergebnisse für die Datensätze des Datenbankobjekts angezeigt, auf das Sie geklickt haben.Die Datensätze sind mithilfe von Registerkarten nach Status gruppiert. Über diese Registerkarten können Sie die Daten aus der Quelle angeben, die in das Ziel übertragen werden sollen.

  3. Klicken Sie im Detailbereich auf eine Registerkarte, deren Name eine Zahl enthält, bei der es sich nicht um die Zahl Null handelt.

    Die Spalte Aktualisieren der Tabelle Nur im Ziel enthält Kontrollkästchen, mit deren Hilfe Sie die zu aktualisierenden Zeilen auswählen können.Standardmäßig sind alle Kontrollkästchen aktiviert.

  4. Deaktivieren Sie die Kontrollkästchen der Datensätze im Ziel, die nicht mit Daten aus der Quelle aktualisiert werden sollen.

    Wenn Sie ein Kontrollkästchen deaktivieren, verringert sich dadurch die Anzahl der zu aktualisierenden Datensätze, und die Anzeige wird entsprechend angepasst.Diese Zahl erscheint in der Statuszeile des Detailbereichs sowie in der entsprechenden Spalte im Hauptergebnisbereich (siehe Schritt 1).

  5. (Optional) Klicken Sie auf Skript generieren.

    Ein Transact-SQL-Editorfenster wird geöffnet. Es enthält das Skript in der Datenbearbeitungssprache (Data Manipulation Language, DML), das zum Aktualisieren des Ziels verwendet wird.

  6. Klicken Sie auf Ziel aktualisieren, um unterschiedliche, fehlende oder neue Datensätze zu synchronisieren.

    Hinweis

    Die Aktualisierung der Zieldatenbank kann durch Klicken auf Schreiben auf Ziel beenden abgebrochen werden.

    Die Daten der ausgewählten Datensätze im Ziel werden mit den Daten aus den entsprechenden Datensätzen der Quelle aktualisiert.

    Hinweis

    Wenn Sie sich für die Aktualisierung indizierter Sichten entscheiden, tritt bei Ziel aktualisieren unter Umständen ein Fehler auf, falls diese Aktion dazu führt, dass doppelte Schlüssel in die gleiche Tabelle eingefügt werden.

So aktualisieren Sie Zieldaten mithilfe eines Transact-SQL-Skripts

  1. Vergleichen Sie die Daten einer Quell- und einer Zieldatenbank.Weitere Informationen finden Sie unter Vergleichen von Datenbankdaten.

    Nach Abschluss des Vergleichs werden im Datenvergleichsfenster die verglichenen Objekte aufgeführt.Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen anhand von Daten aus einer Verweisdatenbank.

  2. (Optional) Deaktivieren Sie im Detailbereich die Kontrollkästchen der nicht zu aktualisierenden Datensätze im Ziel, wie im vorherigen Verfahren beschrieben.

  3. Klicken Sie auf Skript generieren.

    Ein neues Fenster zeigt das Transact-SQL-Skript zum Übertragen der erforderlichen Änderungen, mit denen dafür gesorgt wird, dass die Daten im Ziel den Daten aus der Quelle entsprechen.Das neue Fenster wird mit einer Bezeichnung wie DataUpdate_Database_1.sql versehen.

    Dieses Skript spiegelt die im Detailbereich vorgenommenen Änderungen wider.Beispielsweise haben Sie dort vielleicht auf der Seite „Nur im Ziel“ das Kontrollkästchen einer bestimmten Zeile für die Tabelle „[dbo].[Shippers]“ deaktiviert.In diesem Fall wird diese Zeile durch das Skript nicht aktualisiert.

  4. (Optional) Bearbeiten Sie das Skript im Fenster DataUpdate_Database_1.sql.

  5. (Optional, aber empfohlen) Sichern Sie die Zieldatenbank.

  6. Klicken Sie auf Ausführen, um die Zieldatenbank zu aktualisieren.

    Geben Sie eine Verbindung mit der zu aktualisierenden Zieldatenbank an.

    Wichtig

    Standardmäßig erfolgen die Aktualisierungen im Rahmen einer Transaktion.Im Falle eines Fehlers können Sie die gesamte Aktualisierung zurücksetzen.Diese Verhalten kann geändert werden.

    Die Daten der ausgewählten Datensätze im Ziel werden mit den Daten aus den entsprechenden Datensätzen der Quelle aktualisiert.

Siehe auch

Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen anhand von Daten aus einer Verweisdatenbank