Freigeben über


Übersicht über das Vergleichen von Datenbankschemas

Mit Team Edition for Database Professionals können Sie die Schemas von zwei Datenbanken vergleichen und dann entscheiden, ob einige oder alle Schemaobjekte aus der Quelle auf das Ziel angewendet werden sollen. Ein Beispielszenario finden Sie unter Warum sollten Datenbankschemas verglichen werden?.

Sie können die folgenden Schemas vergleichen:

  • Zwei Datenbanken, einschließlich zwei Versionen der gleichen Datenbank

  • Ein Visual Studio-Datenbankprojekt und eine Datenbank

Beim Konfigurieren des Vergleichs weisen Sie im Dialogfeld Schemavergleich die Quelle und das Ziel zu. Weitere Informationen finden Sie unter Gewusst wie: Vergleichen der Schemas von zwei Datenbanken.

Nach dem Schemavergleich werden die Vergleichsergebnisse angezeigt. Weitere Informationen finden Sie unter Gewusst wie: Anzeigen von Schemaunterschieden. Sie können dann Schemaelemente von der Quelle zum Ziel weitergeben. Weitere Informationen finden Sie unter Gewusst wie: Synchronisieren von Datenbankschemas.

Warum sollten Datenbankschemas verglichen werden?

Im Folgenden wird ein Szenario beschrieben, in dem Sie Datenbankschemas vergleichen sollten. In diesem Fall vergleichen Sie eine Datenbank und ein Datenbankprojekt anstelle von zwei Datenbanken.

Datenbankentwicklung im Team

Sie sind Datenbankentwickler und erstellen mit einem Visual Studio-Datenbankprojekt eine Datenbank. Im Lauf der Zeit erstellt Ihr Team eine Reihe von Versionen der Datenbank und stellt sie auf Testservern bereit. Andere Mitglieder des Teams arbeiten ebenfalls am Entwurf der Datenbank mit.

Sie haben gerade eine Reihe von Änderungen am Datenbankschema vorgenommen und die Änderungen auf Ihrem eigenen Computer getestet. Da Sie keine Fehler gefunden haben, möchten Sie die Aktualisierungen nun auf einem Testserver veröffentlichen, damit sie von der Qualitätssicherung in Ihrem Team getestet werden können.

Sie öffnen das Datenbankprojekt und richten mithilfe des Dialogfelds Neuer Schemavergleich eine Verbindung mit dem Testserver ein. Sie vergleichen Ihr Projekt (die Quelle) mit der bereitgestellten Datenbank (dem Ziel) und stellen fest, dass mehrere Objekte bei den beiden Entitäten unterschiedlich sind. Sie sehen jedoch auch, dass die meisten Unterschiede bei Objekten vorliegen, die nicht in Ihrem Verantwortungsbereich liegen. Andere haben diese Änderungen vorgenommen, und Sie möchten sie nicht überschreiben.

Sie wählen nun nur die Objekte aus, die Sie bearbeitet haben, und klicken auf Updates schreiben. Hierdurch wird nur Ihr Teil der Datenbank aktualisiert, und die anderen Teile werden nicht geändert. Ihre Arbeit wird nun bereitgestellt und kann getestet werden.

Im folgenden Abschnitt wird beschrieben, wie Sie in Team Edition for Database Professionals erkennen können, welche Schemaobjekte geändert wurden und welche Aktionen Sie ausführen sollten.

Steuern des Schemavergleichs

Sie können Optionen angeben, die den Schemavergleichsprozess und den Skriptgenerierungsprozess auf zwei Ebenen steuern. Wenn Sie die Optionen global festlegen möchten, öffnen Sie das Menü Extras, klicken Sie auf Optionen, erweitern Sie Datenbanktools, und klicken Sie dann auf Schemavergleich. Global festgelegte Optionen wirken sich auf alle nachfolgenden Schemavergleiche aus, wenn Sie sie nicht für einen bestimmten Vergleich überschreiben.

Schemavergleichsansichten

Nachdem Sie zwei Schemas verglichen haben, werden die Ergebnisse im Fenster Schemavergleich in einem Raster angezeigt. Im Fenster werden außerdem Informationen über Objekte in den Datenbanken angezeigt, einschließlich des Skripts, mit dem sie synchronisiert werden können.

  • Grundlagen zu den Ergebnissen eines Schemavergleichs

  • Anzeigen von Objektdefinitionen

  • Anzeigen einer Vorschau des Aktualisierungsskripts

Grundlagen zu den Ergebnissen eines Schemavergleichs

Das Fenster Schemavergleich nimmt den Hauptbearbeitungsbereich von Visual Studio ein. In diesem Fenster werden in erweiterbaren Ordnern alle Objekte in beiden Schemas angezeigt. Zu diesen Objekten gehören Tabellen, Ansichten, gespeicherte Prozeduren, Funktionen, benutzerdefinierte Typen, Regeln, Standardwerte, Volltextkataloge, Benutzer und Rollen.

In diesem Fenster werden in den Spalten die folgenden Informationen zu den einzelnen Objekten angezeigt:

  • Die erste Spalte (Status) zeigt den Vergleichszustand der verglichenen Objekte an:

    • Gleich. Die Struktur der Quell- und Zielobjekte ist gleich.

    • Verschieden. Die Struktur der Quell- und Zielobjekte ist unterschiedlich.

    • Fehlen. Das Objekt ist im Ziel vorhanden, nicht jedoch in der Quelle.

    • Neu. Das Objekt ist in der Quelle vorhanden, nicht jedoch im Ziel.

    Hinweis

    Beim Ermitteln, ob Objekte gleich oder unterschiedlich sind, werden die von Ihnen festgelegten Schemavergleichsoptionen berücksichtigt. Weitere Informationen finden Sie unter Steuern des Schemavergleichs.

  • Die zweite Spalte enthält hierarchisch nach Objekttyp die Namen von Schemaobjekten in der Quelle. In dieser Spalte können Sie Knoten erweitern und reduzieren, um nur die gewünschten Objekte anzuzeigen.

  • In der dritten Spalte (Aktion aktualisieren) wird die Aktion angezeigt, mit der für ein bestimmtes Objekte die Struktur dieses Objekts zwischen den beiden Schemas synchronisiert werden kann. (Änderungen werden nur in das Ziel geschrieben.) Die Werte in der Spalte Aktion aktualisieren entsprechen den Werten in der Spalte Status. Sie können bei allen Objekten die Aktion Überspringen auswählen. Hierbei bleibt das Objekt im Ziel unverändert, wie vor dem Vergleich. Möglicherweise können Sie eine Aktualisierung nicht überspringen, wenn das Kontrollkästchen Abhängigkeiten einschließen aktiviert ist. (Öffnen Sie zum Überprüfen des Status dieses Kontrollkästchens das Menü Extras, und klicken Sie auf Optionen.) Wenn die Quelldatenbank beispielsweise eine neue Tabelle mit Indizes, Schlüsseln und Triggern enthält und Sie die Indizes, Schlüssel und Trigger hinzufügen, können Sie die Tabelle nicht überspringen.

    Hinweis

    Durch das Ändern von Werten in der Spalte Aktion aktualisieren wird das Aktualisierungsskript geändert, das ausgeführt wird. Anders ausgedrückt werden die Ergebnisse geändert, die beim Klicken auf Updates schreiben angezeigt werden würden. Weitere Informationen finden Sie unter Gewusst wie: Synchronisieren von Datenbankschemas.

    In der folgenden Tabelle werden diese Aktionen zusammengefasst:

Vergleichsstatus

Verfügbare Aktualisierungsaktionen (Standardeinstellung fett hervorgehoben)

Beschreibung der Standardaktion

Gleich

Überspringen

Beim Überspringen, der Standardaktion für gleiche Objekte, bleibt das Objekt unverändert.

Verschieden

Aktualisieren, Überspringen

Beim Aktualisieren, der Standardaktion für nicht gleiche Objekte, wird die Struktur des Objekts in der Zieldatenbank geändert. Durch das Aktualisieren könnte beispielsweise eine Spalte in einer Tabelle hinzugefügt, gelöscht oder umbenannt werden.

Fehlen

Ablegen, Überspringen

Beim Ablegen, der Standardaktion für nicht in der Quelldatenbank vorhandene Objekte, wird das Objekt in der Zieldatenbank gelöscht.

Neu

Erstellen, Überspringen

Beim Erstellen, der Standardaktion für nicht in der Zieldatenbank vorhandene Objekte, wird das Objekt in der Zieldatenbank erstellt.

  • Die vierte Spalte enthält die Namen der Schemaobjekte im Ziel.

Anzeigen von Objektdefinitionen

Sie können auch die SQL-Definitionen der einzelnen Datenbankobjekte im Fenster Schemavergleich anzeigen. Wenn Sie auf die Zeile eines Objekts im Hauptdokumentfenster klicken, wird die Definition in schreibgeschützten Bereich Objektdefinitionen angezeigt. Im linken Teil des Bereichs Objektdefinitionen wird die Definition eines ausgewählten Objekts in der Quelle angezeigt, und der rechte Teil enthält die Definition eines ausgewählten Objekts im Ziel. Sie können mithilfe der Bildlaufleisten an den Seiten gleichzeitig einen Bildlauf durch beide Definitionen ausführen. Zeilen, die sich in der Quell- und Zielobjektdefinition unterscheiden, werden hervorgehoben.

Objektdefinitionen geben den Status des Objekts zu dem Zeitpunkt wieder, zu dem der Vergleich ausgeführt wurde. Sie werden nicht geändert, wenn Sie Werte in der Spalte Aktion aktualisieren ändern oder das Objekt außerhalb der Schemavergleichssitzung geändert wird.

Anzeigen einer Vorschau des Aktualisierungsskripts

Beim Vergleichen von Schemas wird automatisch auch ein Synchronisierungsskript erstellt und im Fenster Schema-Updateskript angezeigt. Dieses DDL-Skript (Datendefinitionssprache) würde zum Aktualisieren des Ziels verwendet werden. Das Skript enthält nur Objekte, deren Vergleichszustand Aktualisieren, Ablegen oder Erstellen lautet. Elemente, die übersprungen werden sollen, werden nicht im Fenster Schema-Updateskript angezeigt.

Wenn Sie Werte in der Spalte Aktion aktualisieren ändern, werden diese Änderungen im Fenster Schema-Updateskript reflektiert.

Hinweis

Das Aktualisieren des Inhalts im Bereich Skriptvorschau kann abhängig vom Umfang der Änderungen in der Spalte Aktion aktualisieren einige Sekunden in Anspruch nehmen.

Sie können das DLL-Skript durch Ändern der Aktualisierungsaktionen ändern, Sie können es jedoch nicht direkt in diesem Fenster bearbeiten, da der Bereich Skriptvorschau schreibgeschützt ist. Wenn Sie das Aktualisierungsskript bearbeiten möchten, klicken Sie auf In Editor exportieren, und ändern Sie dann das Aktualisierungsskript im Transact-SQL (T-SQL)-Editor.

Aktualisieren der Vergleichsergebnisse

Sie können die Ansicht der Unterschiede zwischen dem Quell- und dem Zielschema aktualisieren. Nach dem ersten Vergleich der Quelle und des Ziels sollten Sie die Ansicht von einer oder beiden Schemaänderungen aktualisieren. Außerdem sollten Sie die Ergebnisse aktualisieren, wenn Sie die Schemavergleichsoptionen ändern. Wenn Sie auf Aktualisieren klicken, werden die zuvor angegebenen Konfigurationsinformationen wieder verwendet und neue Vergleichsdaten erstellt.

Seit dem letzten Schemavergleich wurden der Quelle möglicherweise Datenbankobjekte hinzugefügt oder daraus entfernt. Wenn Sie auf Aktualisieren klicken, wird in diesem Fall beim Schemavergleich versucht, die neuen Objekte in den neuen Vergleich einzuschließen bzw. gelöschte Objekte auszuschließen. Wenn Sie jedoch die Einstellung unter Aktion aktualisieren für ein bestimmtes Objekt geändert haben, wird diese Einstellung unabhängig von den Änderungen an dem Objekt beibehalten, die seit dem letzten Schemavergleich vorgenommen wurden.

Sicheres Weitergeben von Datenbankschemas

Beim Weitergeben von Datenbankschemas kann es zu Datenverlusten kommen. Um dies zu vermeiden, sollten Sie die Namen der Objekte in der Quelle und dem Ziel genau betrachten, insbesondere vor dem Aktualisieren des Schemas im Ziel.

Das Ziel könnte beispielsweise die Tabelle Order_Details enthalten. In der Quelldatenbank haben Sie sie in Order Details ohne Unterstrich umbenannt. Sie vergleichen dann die beiden Datenbanken. Bevor Sie das Schema von der Quelle zum Ziel weitergeben, sind die Daten in beiden Tabellen gleich. Wenn Sie jedoch Schemaaktualisierungen in das Ziel schreiben, wird die Tabelle Order_Details gelöscht, und es wird eine neue Tabelle Order Details erstellt. Dabei können alle Daten in der Tabelle Order_Details verloren gehen.

Sie können das Menü Extras öffnen, auf Optionen klicken und dann das Kontrollkästchen Schema-Updates blockieren, wenn Datenverlust auftreten könnte aktivieren, um Datenverluste zu verhindern. Außerdem sollten Sie die Datenbank immer sichern, bevor Sie Änderungen an der Datenbank bereitstellen.

Siehe auch

Aufgaben

Gewusst wie: Vergleichen der Schemas von zwei Datenbanken

Konzepte

Übersicht über das Vergleichen von Datenbankdaten
Übersicht über die Terminologie von Team Edition for Database Professionals