Visual Studio Database Edition: Datenbankschemas vergleichen

31. Januar 2011

Im letzten Artikel wurde ein kurzer Überblick zu Datenbankprojekten gegeben.

Nun stellt sich die Frage, wie mit dem neu angelegten Projekt entwickelt werden kann? Muss nun jede Tabelle und Stored Procedure im Visual Studio geschrieben werden, oder kann weiterhin direkt in der (lokalen) Datenbank entwickelt werden? Und wie werden Änderungen am Projekt eigentlich in die Datenbank übertragen und umgekehrt?

Für all diese Fragen hat die Database Edition eine einfache Antwort: Schema Compare!

Schema Compare bietet mir die Möglichkeit, meine Entwicklungsdatenbank mit dem Datenbankprojekt zu vergleichen. Oder aber auch die Unterschiede zwischen zwei Datenbanken zu analysieren.

Um einen Schema Compare zu starten geht man auf “Data -> Schema compare -> New schema comparison“. Dies öffnet den “New Schema Comparison” Dialog:

image

Hier wählt man Quelle und Ziel aus und startet den Vergleich.

Das Ergebnis sieht dann ungefähr so aus:

image

Es werden alle Unterschiede nach Objekt gruppiert aufgeführt. Der Entwickler hat nun die Möglichkeit weiter zu filtern, z.B. alle Objekte die sich geändert haben oder nur in Quelle/Ziel bestehen etc.

Wirklich nützlich ist die Möglichkeit, gezielt Unterschiede auszuwählen und in das Ziel übertragen zu lassen.

Ein Entwickler arbeitet z.B. auf seiner lokalen Sandbox Datenbank, erstellt eine neue Tabelle und passende Stored Procedures. Mit Hilfe des Schema Compare Tools können diese nun ganz einfach in das Projekt überführt und Versioniert werden.

Andere Entwickler können diese Änderungen nun einfach in ihre lokale Sandbox Datenbank übertragen. Sollten bereits Änderungen an anderen Tabellen vorgenommen worden sein, besteht nun die Möglichkeit die Unterschiede zu erkennen und zusammenzuführen.

Damit sind die Möglichkeiten der Database Edition aber noch nicht erschöpft. Darüber hinaus ist es mit dem Data Compare Tool möglich, die Daten zweier Datenbanken miteinander zu vergleichen. Anhand der Differenzen kann dann ein Script generiert werden, welches die Datensätze erstellt oder anpasst. Dies ist z.B. äußerst nützlich für die initiale Befüllung einer Datenbank.

Zum Abschluss noch zwei weiterführende Links zu ausführlichen Tutorials, in welchen das Thema sehr gut erklärt wird:

Schema Compare

Data Compare