Exemplarische Vorgehensweise: Vergleichen der Daten von zwei Datenbanken
Dieses Thema gilt für folgende Anwendungsbereiche:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
In dieser exemplarischen Vorgehensweise vergleichen Sie die Daten zweier Datenbanken, generieren anhand der Unterschiede ein DML (Data Manipulation Language)-Skript und füllen dann anhand dieses Skripts das Ziel mit Daten aus der Quelle auf.
In dieser exemplarischen Vorgehensweise führen Sie folgende Verfahren aus:
Hinzufügen von Daten zur Quelldatenbank. In dieser Prozedur fügen Sie der Tabelle Customer in der Quelldatenbank mit dem Transact-SQL-Editor Daten hinzu.
Vergleichen der Daten zweier Datenbanken. In diesem Verfahren suchen Sie Unterschiede bei Daten, zeigen diese in einem Raster an und generieren ein DML-Skript, das diese enthält.
Aktualisieren der Zieldatenbank. In diesem Verfahren finden Sie zwei Möglichkeiten zum Aktualisieren des Ziels, damit es der Quelle entspricht.
Vorbereitungsmaßnahmen
Bevor Sie diese exemplarische Vorgehensweise ausführen können, müssen Sie den Zugriff auf die folgenden Produkte sicherstellen:
SQL Server 2008
Visual Studio Premium oder Visual Studio Ultimate
Bevor Sie mit dieser exemplarischen Vorgehensweise beginnen, müssen Sie die Verfahren unter Exemplarische Vorgehensweise: Vergleichen der Schemas von zwei Datenbanken befolgen. Nachdem Sie diese exemplarische Vorgehensweise ausgeführt haben, verfügen Sie über zwei Datenbanken:
Die Quelle CompareProjectDB weist die ursprüngliche Struktur auf, enthält jedoch keine Daten. Als Teil des Skripts nach der Bereitstellung passen Sie das Projekt an, um Daten in die Datenbank einzufügen.
Bei dem Ziel EmptyDB handelt es sich um die Datenbank, die Sie in der exemplarischen Vorgehensweise zum Vergleichen von Schemas erstellt haben. Dort haben Sie lediglich das Schema der Datenbank AdventureWorks auf EmptyDB angewendet. Daher enthält EmptyDB keine Daten.
Sie benötigen die Berechtigungen zum Lesen der Daten aus der Quell- und der Zieldatenbank.
Hinzufügen von Daten zur Quelldatenbank
So fügen Sie der Quelldatenbank mit dem Transact-SQL-Editor Daten hinzu
Zeigen Sie im Menü Daten auf Transact-SQL Editor, und klicken Sie auf Neue Abfrageverbindung.
Geben Sie eine Verbindung mit dem Server an, auf dem sich der CompareProjectDB befindet.
Geben Sie im Transact-SQL-Editor die folgenden Transact-SQL-Anweisungen ein:
use CompareProjectDB; go delete from [Sales].[Customer]; go exec [Sales].[uspNewCustomer] 'Ken J. Sánchez' exec [Sales].[uspNewCustomer] 'Terri Lee Duffy' exec [Sales].[uspNewCustomer] 'Roberto Tamburello' exec [Sales].[uspNewCustomer] 'Rob Walters' exec [Sales].[uspNewCustomer] 'Gail Erickson' exec [Sales].[uspNewCustomer] 'Jossef Goldberg' exec [Sales].[uspNewCustomer] 'Dylan Miller' exec [Sales].[uspNewCustomer] 'Diane Margheim' exec [Sales].[uspNewCustomer] 'Gigi Matthew' go
Klicken Sie auf der Symbolleiste des Transact-SQL Editor-Editors auf SQL ausführen.
Die Transact-SQL-Anweisungen entfernen alle vorhandenen Daten aus der Tabelle [Sales].[Customer] und verwenden dann das gespeicherte Prozedur [Sales].[uspNewCustomer], um neun Kunden hinzuzufügen. Sobald die Quelldatenbank Daten enthält, können Sie diese mit der Zieldatenbank vergleichen.
Vergleichen der Daten von zwei Datenbanken
So vergleichen Sie die Daten von zwei Datenbanken
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 im Hintergrund geöffnet, und Visual Studio weist ihm automatisch einen Namen zu, z. B. DataCompare1.
Klicken Sie in der Liste Quelldatenbank auf die Verbindung mit der Datenbank CompareProjectDB.
Wenn die Liste Quelldatenbank leer ist, klicken Sie auf Neue Verbindung. Geben Sie im Dialogfeld Verbindungseigenschaften den Server mit der Datenbank CompareProjectDB 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 neue Datenvergleiche zurück.
Klicken Sie in der Liste Zieldatenbank auf Server.EmptyDB.dbo.
Wenn die Liste Zieldatenbank leer ist, klicken Sie auf Neue Verbindung. Geben Sie im Dialogfeld Verbindungseigenschaften den Server mit der Datenbank EmptyDB 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 neue Datenvergleiche zurück.
Wenn Sie die Datensätze einschränken möchten, die in den Vergleichsergebnissen angezeigt werden, können Sie Datenvergleichsoptionen angeben. Übernehmen Sie für diese exemplarische Vorgehensweise die Standardwerte, sodass alle Datensätze angezeigt werden.
Klicken Sie auf Weiter.
Auf der zweiten Seite des Assistenten für neue Datenvergleiche können Sie eine Auswahl von Tabellen und Ansichten für den Vergleich angeben. Alle Tabellen der Datenbank werden unter dem Knoten Tabellen aufgelistet. Sie können einzelne Tabellen erweitern, um die enthaltenen Spalten anzuzeigen. Standardmäßig werden alle Tabellen und Spalten angezeigt und verglichen. Der Schlüssel zum Vergleichen der Datensätze wird für jede Tabelle oder Ansicht in der Liste angezeigt. Tabellen und Ansichten müssen bestimmte Kriterien erfüllen, um verglichen zu werden. Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Daten in einer oder mehreren Tabellen mit Daten aus einer Referenzdatenbank.
Tipp
Wenn Sie nicht anpassen möchten, welche Tabellen und Ansichten verglichen werden, können Sie statt auf Weiter auf Fertig stellen klicken.
Klicken Sie auf Fertig stellen, um den Vergleich zu starten.
Der Vergleich wird gestartet.
Tipp
Sie können einen derzeit ausgeführten Datenvergleich anhalten, indem Sie auf der Symbolleiste Datenvergleich auf Beenden klicken.
Wenn der Vergleich abgeschlossen ist, werden die Datenunterschiede zwischen den beiden Datenbanken in einer Tabelle im Fenster Datenvergleich angezeigt. Weitere Informationen zum Anzeigen dieser Ergebnisse finden Sie im nächsten Verfahren.
Sie können die Daten des Ziels jetzt aktualisieren, damit sie den Daten der Quelle entsprechen. Weitere Informationen finden Sie unter Aktualisieren der Zieldatenbank.
So zeigen Sie die Ergebnisse von Datenvergleichen an
Klicken Sie auf die Zeile [Sales].[Customer].
Die Namen der Registerkarten im Bereich Datenansicht geben nun die Anzahl der Datensätze jeden Typs an: Unterschiedliche Datensätze (0), Nur in der Quelle (9), Nur im Ziel (0) und Identische Datensätze (0).
Klicken Sie auf die Registerkarte Nur in der Quelle (9).
Jede Zeile und jede Spalte auf der Registerkarte Nur in der Quelle (9) entspricht einer Zeile oder Spalte in der Tabelle [Sales].[Customer].
Tipp
Sie können diese Registerkarten verwenden, um die Daten zu steuern, die an das Ziel weitergegeben werden.
Aktualisieren des Ziels
Sie können die Daten des Ziels direkt im Fenster Datenvergleich oder aber im Transact-SQL-Editor aktualisieren. In diesem Abschnitt werden beide Optionen beschrieben.
Nachdem Sie die Daten verglichen haben, werden die Unterschiede im Fenster Datenvergleich im Raster angezeigt. Für jede Tabelle oder Ansicht in der Spalte Objekt gibt ein Kontrollkästchen an, ob das entsprechende Objekt in einen Aktualisierungsvorgang eingeschlossen wird. Die Spalten zeigen an, welche Änderungen welcher Typen im Datenvergleich angegeben wurden. Da das Ziel abgesehen von den Standardobjekten leer ist, werden in diesem Fall nur in der Spalte Nur in der Quelle Änderungen angezeigt, die vorgenommen wurden.
Schreiben von Aktualisierungen mithilfe von Datenvergleichsoptionen
Um die Daten des Ziels mit den Aktualisierungsoptionen zu aktualisieren, die im Fenster Datenvergleich angezeigt werden, verwenden Sie das folgende Verfahren:
- Aktualisieren der Zieldatenbank
Schreiben von Aktualisierungen mithilfe des Transact-SQL-Editors
Um ein Aktualisierungsskript zu exportieren, zu überprüfen und zu ändern und es anschließend zum Ändern des Ziel zu verwenden, verwenden Sie das folgende Verfahren:
- Überprüfen und Ausführen des Synchronisierungsskripts
Aktualisieren der Zieldatenbank
So aktualisieren Sie das Ziel
Klicken Sie im Fenster Datenvergleich auf [Sales].[Customer].
Klicken Sie im Detailbereich auf Nur in der Quelle.
Die ersten beiden Zeilen beziehen sich auf Kunden mit dem Namen Ken J. Sánchez und Terri Lee Duffy.
Auf der Statusleiste des Detailbereichs wird die Anzahl der Datensätze angegeben, die in der Quelle fehlen, sowie die Anzahl der Datensätze, die im Ziel gelöscht werden. Diese beiden Zahlen stimmen überein.
Deaktivieren Sie das Kontrollkästchen in der Zeile für Terri Lee Duffy.
Auf der Statusleiste des Detailbereichs hat sich die Anzahl der einzufügenden Datensätze um einen Datensatz verringert. Sie entspricht nicht mehr der Anzahl von Datensätzen, die im Ziel fehlen.
Klicken Sie im Fenster Datenvergleich auf Updates schreiben.
Die im Fenster Datenvergleich aufgelisteten Aktualisierungsaktionen werden implementiert. Mit dieser Synchronisierung wird das Ziel so geändert, dass es der Quelle entspricht.
Tipp
Während das Ziel aktualisiert wird, können Sie den Vorgang abbrechen, indem Sie auf Schreiben auf Ziel beenden klicken.
Überprüfen und Ausführen des Synchronisierungsskripts
So überprüfen Sie das Synchronisierungsskript
Klicken Sie auf der Datenvergleichs-Symbolleiste auf In Editor exportieren.
Der Transact-SQL-Editor wird im verbundenen Modus geöffnet, und das Transact-SQL-Skript wird angezeigt. Dieses Fenster besitzt einen Namen, der DataUpdate_EmptyDB_1.sql ähnelt. Da Sie in diesem Fenster über Schreibzugriff verfügen, können Sie das Skript ändern. Wenn Sie das Updateskript speichern möchten, klicken Sie auf Speichern.
Führen Sie zum Synchronisieren der Daten in den beiden Datenbanken dieses Skript aus, indem Sie auf SQL ausführen klicken oder F5 drücken.
Tipp
Während das Skript ausgeführt wird, können Sie den Vorgang abbrechen, indem Sie auf Abfrageausführung abbrechen klicken oder ALT+PAUSE drücken.
Siehe auch
Aufgaben
Gewusst wie: Vergleichen von Datenbankschemas
Gewusst wie: Vergleichen und Synchronisieren der Daten von zwei Datenbanken