Gewusst wie: Vergleichen und Synchronisieren der Daten von zwei Datenbanken

Dieses Thema gilt für folgende Anwendungsbereiche:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

Thema ist vorhanden Thema ist vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Mit Visual Studio können Sie die Daten vergleichen, die in zwei Datenbanken enthalten sind. Die verglichenen Datenbanken werden als Quelle und Ziel bezeichnet.

Tipp

Datenbankprojekte und Anwendungsprojekte auf Datenebene enthalten keine Daten. Aus diesem Grund kann kein Projekt dieser Art als Quelle oder Ziel eines Datenvergleichs fungieren. Analog dazu enthalten auch DBSCHEMA- und DACPAC-Dateien keine Daten und können nicht als Quelle oder Ziel eines Datenvergleichs verwendet werden.

Beim Vergleich der Daten wird das Datenbearbeitungssprache (DML)-Skript generiert, mit dem Sie verschiedene Datenbanken durch Aktualisierung einiger oder aller Daten für die Zieldatenbank synchronisieren können. Wenn der Datenvergleich beendet ist, werden die Ergebnisse im Fenster Datenvergleich von Visual Studio angezeigt.

Nachdem der Vergleich beendet ist, können Sie weitere Schritte ausführen:

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

  • Sie können einen Teil des Ziels oder das gesamte Ziel so aktualisieren, dass 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 mit Daten aus einer Referenzdatenbank.

Tipp

Sie können auch das Schema von zwei Datenbanken vergleichen oder zwei Versionen der gleichen Datenbank. Weitere Informationen finden Sie unter Gewusst wie: Vergleichen von Datenbankschemas.

Vergleichen von Datenbankdaten

So vergleichen Sie Daten mit dem Assistenten Neuer Datenvergleich

  1. Zeigen Sie im Menü Daten auf Datenvergleich, und klicken Sie dann auf Neuer Datenvergleich.

    Der Assistent für neue Datenvergleiche wird angezeigt. Außerdem wird das Fenster Datenvergleich geöffnet, und Visual Studio weist diesem automatisch einen Namen zu, z. B. DataCompare1.

  2. Bestimmen Sie die Quell- und die Zieldatenbank.

    Wenn die Liste Quelldatenbank oder die Liste Zieldatenbank leer ist, klicken Sie auf Neue Verbindung. Geben Sie im Dialogfeld Verbindungseigenschaften den Server mit der Datenbank und den Authentifizierungstyp an, der beim Herstellen einer Verbindung mit der Datenbank verwendet werden soll. Klicken Sie dann auf OK, um das Dialogfeld Verbindungseigenschaften zu schließen, und kehren Sie zum Assistenten für den Datenvergleich zurück.

    Überprüfen Sie auf der ersten Seite des Assistenten für den Datenvergleich die Richtigkeit der Informationen für die einzelnen Datenbanken, geben Sie an, welche Einträge in die Ergebnisse einbezogen werden sollen, und klicken Sie auf Weiter. Die zweite Seite des Assistenten für den Datenvergleich mit einer hierarchischen Auflistung der Tabellen und Ansichten in der Datenbank wird aufgelistet.

  3. Aktivieren Sie die Kontrollkästchen für die Tabellen und Ansichten, die Sie vergleichen möchten. Sie können auch die Knoten für die Datenbankobjekte erweitern und die Kontrollkästchen für Spalten in den Objekten aktivieren, die Sie vergleichen möchten.

    Tipp

    Tabellen und Ansichten müssen zwei Kriterien erfüllen, um in der Liste aufgeführt zu werden. Erstens müssen die Schemas der Objekte in Quell- und Zieldatenbank sich entsprechen. Zweitens werden nur Tabellen und Ansichten mit einem Primärschlüssel, einem eindeutigen Schlüssel oder einem Index in der Liste angezeigt. Wenn keine Tabellen oder Ansichten beide Kriterien erfüllen, ist die Liste leer.

  4. Sollten mehrere Schlüssel vorhanden sein, können Sie in der Spalte Schlüsselvergleich den Schlüssel angeben, der einem Datenvergleich zugrunde liegen soll. Beispielsweise können Sie angeben, ob der Vergleich auf der Primärschlüsselspalte oder einer anderen (eindeutig identifizierbaren) Schlüsselspalte basieren soll.

  5. Klicken Sie auf Fertig stellen.

    Der Vergleich wird gestartet.

    Tipp

    Sie können einen laufenden Datenvergleich beenden, indem Sie das Menü Daten öffnen, auf Datenvergleich und dann auf Datenvergleich beenden klicken.

    Wenn der Vergleich beendet wird, können Sie Datenunterschiede zwischen den zwei Datenbanken anzeigen. Sie können auch einen Teil der oder alle Daten in der Zieldatenbank aktualisieren, damit diese den Daten in der Quelldatenbank entsprechen.

So vergleichen Sie Daten mit dem Visual Studio-Automatisierungsmodell

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

  2. Geben Sie im Befehlsfenster folgenden Befehl ein:

    Data.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 die Quell- und Zieldatenbank.

    Wenn Sie keine Quelle und kein Ziel angeben, wird das Dialogfeld Neuer Datenvergleich angezeigt. Weitere Informationen zu den Parametern für den Befehl Data.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 werden in einer Datenvergleichssitzung angezeigt. Weitere Informationen zum Anzeigen von Ergebnissen oder Synchronisieren der Daten finden Sie unter Anzeigen von Datenunterschieden und Synchronisieren von Datenbankdaten.

Anzeigen von Datenunterschieden

Nachdem Sie die Daten zweier Datenbanken verglichen haben, werden alle verglichenen Datenbankobjekte mit dem zugehörigen Status aufgeführt. Sie können auch die Ergebnisse für die Datensätze in den einzelnen Objekten nach Status gruppiert anzeigen. Weitere Informationen über die Statusbezeichnungen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen mit Daten aus einer Referenzdatenbank.

Wenn Sie die Unterschiede angezeigt haben, können Sie das Ziel aktualisieren, sodass es der Quelle hinsichtlich einiger oder aller Objekte oder Datensätze entspricht, die abweichen, fehlen oder neu sind. Weitere Informationen finden Sie unter Synchronisieren von Datenbankdaten.

So zeigen Sie Datenunterschiede an

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

  2. (Optional) Führen Sie eine oder beide der folgenden Aktionen aus:

    • Standardmäßig werden die Ergebnisse für alle Objekte unabhängig von ihrem Status angezeigt. Um nur die Objekte anzuzeigen, die einen bestimmten Status aufweisen, klicken Sie auf eine Option in der Liste Filter.

    • Um die Ergebnisse für Datensätze in einem bestimmten Objekt anzuzeigen, klicken Sie im Hauptergebnisbereich auf das Objekt, und klicken Sie dann auf eine Registerkarte im Datensatzansichtsbereich. Auf jeder Registerkarte werden innerhalb dieses Objekts alle Datensätze angezeigt, die über einen bestimmten Status verfügen: Unterschiedliche Datensätze, Nur in der Quelle, Nur im Ziel und Identische Datensätze. Die Daten werden nach Datensatz und Spalte sortiert angezeigt.

Synchronisieren von Datenbankdaten

Nachdem Sie die Daten in zwei Datenbanken verglichen haben, können Sie diese synchronisieren, indem Sie das gesamte Ziel oder einen Teil des Ziels aktualisieren, um es an die Quelle anzupassen. Sie können die Daten in zwei Arten von Datenbankobjekten vergleichen: Tabellen und Ansichten.

So aktualisieren Sie Zieldaten mithilfe des Befehls Updates schreiben

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

    Nach dem Abschluss des Vergleichs werden im Fenster Datenvergleich die Ergebnisse für die verglichenen Objekte aufgelistet. In vier Spalten (Unterschiedliche Datensätze, Nur in der Quelle, Nur im Ziel und Identische Datensätze) werden Informationen zu Objekten angezeigt, die nicht identisch sind. In den Spalten wird für diese Objekte angezeigt, wie viele Datensätze bei einer Aktualisierung geändert werden würden. Diese beiden Zahlen stimmen zunächst überein, Sie können aber in Schritt 4 ändern, welche Objekte aktualisiert werden.

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

  2. Klicken Sie in der Tabelle des Fensters Datenvergleich auf eine Zeile.

    Im Detailbereich werden die Ergebnisse für die Datensätze in dem Datenbankobjekt angezeigt, auf das Sie geklickt haben. Die Datensätze werden nach Status in Registerkarten gruppiert, um die Daten anzugeben, die von der Quelle zum Ziel übertragen werden.

  3. Klicken Sie im Detailbereich auf eine Registerkarte, deren Name eine andere Zahl als 0 (null) enthält.

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

  4. Deaktivieren Sie die Kontrollkästchen von Datensätzen im Ziel, die Sie nicht mit den Daten aus der Quelle aktualisieren möchten.

    Wenn Sie ein Kontrollkästchen deaktivieren, reduzieren Sie die Anzahl der zu aktualisierenden Datensätze. Die Anzeige wird entsprechend Ihren Aktionen geändert. Diese Anzahl wird in der Statuszeile des Detailbereichs und in der entsprechenden Spalte im Hauptergebnisbereich angezeigt, wie in Schritt 1 beschrieben.

  5. (Optional) Klicken Sie auf In Editor exportieren.

    Es wird ein Transact-SQL-Editorfenster geöffnet, in dem das Skript in der Datenmanipulationssprache angezeigt wird, mit dem das Ziel aktualisiert werden würde.

  6. Um unterschiedliche oder neue Datensätze zu synchronisieren, klicken Sie auf Updates schreiben.

    Tipp

    Während die Zieldatenbank aktualisiert wird, können Sie den Vorgang abbrechen, indem Sie auf Schreiben auf Ziel beenden klicken.

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

    Tipp

    Wenn Sie indizierte Ansichten aktualisieren, kann beim Vorgang Updates schreiben ein Fehler auftreten, wenn dadurch doppelte Schlüssel in dieselbe Tabelle eingefügt werden würden.

So aktualisieren Sie Zieldaten mithilfe eines Transact-SQL-Skripts

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

    Nach Abschluss des Vergleichs werden die verglichenen Objekte im Fenster Datenvergleich aufgelistet. Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen mit Daten aus einer Referenzdatenbank.

  2. (Optional) Deaktivieren Sie im Detailbereich die Kontrollkästchen der Datensätze, die Sie nicht aktualisieren möchten, wie im vorherigen Verfahren beschrieben.

  3. Klicken Sie auf In Editor exportieren.

    In einem neuen Fenster wird das Transact-SQL-Skript angezeigt, das die Änderungen vornehmen würde, die zum Anpassen der Daten im Ziel an die in der Quelle erforderlich sind. Das neue Fenster hat einen Namen wie Server.Datenbank - DataUpdate_Database _1.sql.

    Dieses Skript entspricht den Änderungen, die Sie im Detailbereich vorgenommen haben. Angenommen, Sie haben z. B. auf der Seite Nur im Ziel ein Kontrollkästchen für eine bestimmte Zeile der Tabelle [dbo].[Shippers] deaktiviert. In diesem Fall würde das Skript diese Zeile nicht aktualisieren.

  4. (Optional) Bearbeiten Sie dieses Skript im Fenster Server.Datenbank - DataUpdate_Database _1.sql.

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

  6. Klicken Sie auf SQL ausführen, oder drücken Sie F5, um die Zieldatenbank zu aktualisieren.

    Geben Sie eine Verbindung mit der Datenbank an, die Sie aktualisieren möchten.

    Wichtig

    Standardmäßig werden die Aktualisierungen innerhalb einer Transaktion vorgenommen. Wenn Fehler auftreten, können Sie einen Rollback für die gesamte Aktualisierung ausführen. Dieses Verhalten kann geändert werden. Weitere Informationen finden Sie unter Gewusst wie: Festlegen von Optionen für das Vergleichen von Datenbankdaten.

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

Siehe auch

Aufgaben

Gewusst wie: Vergleichen von Datenbankschemas

Konzepte

Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen mit Daten aus einer Referenzdatenbank