{"id":55000472,"date":"2025-12-01T00:00:00","date_gmt":"2026-02-05T15:52:07","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=472"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"SQL_ServerDatenbanken_vergleichen_mit_VSCode","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/SQL_ServerDatenbanken_vergleichen_mit_VSCode\/","title":{"rendered":"SQL Server-Datenbanken vergleichen mit VS.Code"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/f9600de653fb43f1ac93a0179a0c4fb3\" width=\"1\" height=\"1\" alt=\"\"><b>Es gibt verschiedene Gr&uuml;nde, zwei Datenbanken miteinander zu vergleichen. Wenn uns zwei Versionen einer Datenbank vorliegen, unterscheiden diese sich gegebenenfalls und wir m&ouml;chten herausfinden, welche die aktuellere ist. Bei der Gelegenheit kann man auch gleich noch pr&uuml;fen, welche Unterschiede zwischen den Datenbanken es &uuml;berhaupt gibt. Damit er&ouml;ffnen sich praktische M&ouml;glichkeiten: So k&ouml;nnen wir etwa ein Skript erstellen lassen, welches die Unterschiede zwischen zwei Versionen einer Datenbank aufzeigt. Damit erkennen wir nicht nur die Unterschiede selbst, sondern k&ouml;nnen das Skript sogar nutzen, um die &auml;ltere der beiden Datenbanken auf den aktuellen Stand bringen. Das ist hilfreich, wenn wir eine beim Kunden befindliche Datenbank aktualisieren wollen. Wir erstellen dann einfach ein Skript mit den Unterschieden und f&uuml;hren es beim Kunden aus, damit er die aktuellste Version der Datenbank erh&auml;lt. F&uuml;r das Ermitteln der Unterschiede gibt es verschiedene Werkzeuge, etwa die SQL Server-Tools f&uuml;r Visual Studio Code, die leichtgewichtige Entwicklungsumgebung von Microsoft. In diesem Artikel zeigen wir, wie dieses installiert wird und wie wir die SQL Server-Tools aktivieren und nutzen, um die Unterschiede zwischen zwei Datenbanken in einem Skript zusammenzustellen.<\/b><\/p>\n<h2>Visual Studio Code herunterladen und installieren<\/h2>\n<p>Als Erstes ben&ouml;tigen wir <b>Visual Studio Code <\/b>auf unserem Rechner. Dieses laden wir von der folgenden Webseite herunter:<\/p>\n<pre>https:\/\/code.visualstudio.com\/<\/pre>\n<p>Nach dem Download k&ouml;nnen wir <b>Visual Studio Code <\/b>direkt installieren. Hier gibt es kaum Optionen &#8211; wir k&ouml;nnen lediglich noch die Eintr&auml;ge zum &Ouml;ffnen von Dateien mit <b>Visual Studio Code <\/b>f&uuml;r die verschiedenen Kontextmen&uuml;s von Windows aktivieren.<\/p>\n<p>Nach der Installation und dem Start pr&auml;sentiert sich <b>Visual Studio Code <\/b>wie in Bild 1.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_001.png\" alt=\"Visual Studio Code direkt nach dem Start\" width=\"700\" height=\"385,4854\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Visual Studio Code direkt nach dem Start<\/span><\/b><\/p>\n<h2>MSSQL Extension installieren<\/h2>\n<p>Als N&auml;chstes ben&ouml;tigen wir die Erweiterung f&uuml;r die Arbeit mit SQL Server-Datenbanken. Dazu aktivieren wir mit <b>Strg + Umschalt + X <\/b>die Anzeige der Extensions. Hier geben wir SQL als Suchbegriff ein und erhalten unter anderem den Eintrag <b>SQL Server (mssql) <\/b>&#8211; siehe Bild 2.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_002.png\" alt=\"Installieren der SQL Server-Erweiterung\" width=\"649,627\" height=\"391,5974\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Installieren der SQL Server-Erweiterung<\/span><\/b><\/p>\n<p>Ein Klick auf die Schaltfl&auml;che <b>Install <\/b>f&uuml;gt diese Extension zu <b>Visual Studio Code <\/b>hinzu.<\/p>\n<h2>Verbindung zu den zu vergleichenden Datenbanken herstellen<\/h2>\n<p>Nun ben&ouml;tigen wir zwei Verbindungen, jeweils eine f&uuml;r die beiden zu vergleichenden Datenbanken. Dazu bet&auml;tigen wir die Tastenkombination <b>Strg + Umschalt + P <\/b>und w&auml;hlen den Eintrag <b>MS SQL: Add Connection <\/b>aus (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_003.png\" alt=\"Hinzuf&uuml;gen einer Verbindung\" width=\"700\" height=\"235,1833\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Hinzuf&uuml;gen einer Verbindung<\/span><\/b><\/p>\n<p>Es erscheint ein Dialog, in dem wir die Verbindungsdaten eingeben &#8211; den Namen des Servers, die Angabe, ob wir dem Server-Zertifikat vertrauen wollen, die Authentifizierungsmethode und bei SQL Server-Authentifizierung die Benutzerdaten sowie den Namen der Datenbank. Diesen lassen wir allerdings weg, denn wir wollen nicht nur eine Verbindung zu einer einzelnen Datenbank erstellen, sondern direkt auf alle Datenbanken zugreifen k&ouml;nnen. Ganz oben legen wir noch einen Namen f&uuml;r das Verbindungsprofil fest (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_004.png\" alt=\"Eingabe der Verbindungsdaten f&uuml;r die erste Datenbank\" width=\"424,6267\" height=\"479,626\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Eingabe der Verbindungsdaten f&uuml;r die erste Datenbank<\/span><\/b><\/p>\n<p>Danach zeigt Visual Studio Code in einem eigenen Bereich die Verbindung und verschiedene Ordner an, wie zum Beispiel <b>Databases <\/b>(siehe Bild 5). Diesen k&ouml;nnen wir aufklappen und sehen dann die Datenbanken des SQL Servers &#8211; fast genauso wie im SQL Server Management Studio.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_005.png\" alt=\"Die neue Verbindung in Visual Studio Code\" width=\"424,6267\" height=\"388,5474\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Die neue Verbindung in Visual Studio Code<\/span><\/b><\/p>\n<h2>Datenbanken vergleichen<\/h2>\n<p>Wir haben zwei Beispieldatenbanken mit verschiedenen Versionsst&auml;nden erstellt, die wir nun vergleichen wollen. Du kannst hier Deine eigenen Datenbanken vergleichen.<\/p>\n<p>Um zwei Datenbanken zu vergleichen, &ouml;ffnen wir den Ordner <b>Databases <\/b>und w&auml;hlen f&uuml;r die erste der beiden zu vergleichenden Datenbanken den Kontextmen&uuml;-Eintrag <b>Schema Compare <\/b>aus (siehe Bild 6). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_006.png\" alt=\"Start des Vergleichs\" width=\"424,6267\" height=\"378,3197\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Start des Vergleichs<\/span><\/b><\/p>\n<p>Es erscheint ein neuer Bereich, der bereits die erste Datenbank im Feld <b>Source <\/b>anzeigt. F&uuml;r das Feld <b>Target <\/b>m&uuml;ssen wir nun die zweite Datenbank ausw&auml;hlen. Dazu klicken wir auf die Schaltfl&auml;che mit den drei Punkten (siehe Bild 7). Wir haben hier also die &auml;ltere Version als <b>Source-<\/b>Datenbank gew&auml;hlt und die neuere Version als <b>Target<\/b>-Datenbank.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_007.png\" alt=\"Fenster der Schema Compare-Funktion\" width=\"599,6265\" height=\"210,8177\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Fenster der Schema Compare-Funktion<\/span><\/b><\/p>\n<p>Im nachfolgend ge&ouml;ffneten Bereich w&auml;hlen wir den Server und die zu vergleichende Datenbank aus (siehe Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_008.png\" alt=\"Auswahl der zweiten Datenbank\" width=\"424,6267\" height=\"296,657\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Auswahl der zweiten Datenbank<\/span><\/b><\/p>\n<p>Danach brauchen wir nur noch auf die Schaltfl&auml;che <b>Compare <\/b>zu klicken.<\/p>\n<p>Visual Studio Code nimmt sich jetzt ein wenig Zeit, um den Vergleich durchzuf&uuml;hren. <\/p>\n<h2>Vergleich zwischen den Datenbanken ansehen<\/h2>\n<p>Anschlie&szlig;end liefert Visual Studio Code das Ergebnis des Vergleichs (siehe Bild 9). Im oberen Bereich sehen wir die unterschiedlichen Elemente der Datenbank. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_009.png\" alt=\"Unterschiede zwischen den Datenbanken\" width=\"674,627\" height=\"536,2835\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Unterschiede zwischen den Datenbanken<\/span><\/b><\/p>\n<p>Klicken wir eines davon an, zeigt der untere Bereich die SQL-Anweisungen, die wir verwenden k&ouml;nnen, um den Zustand der Target-Datenbank in der Source-Datenbank herzustellen.<\/p>\n<p>Die Darstellung ist etwas irref&uuml;hrend: W&auml;hrend der obere Bereich mit <b>Delete <\/b>oder <b>Change <\/b>zeigt, was wir tun m&uuml;ssten, um den Zustand von <b>Target <\/b>in <b>Source <\/b>herzustellen, finden wir als SQL-Abfrage genau die umgekehrte Aktion &#8211; statt <b>Delete <\/b>also beispielsweise eine <b>CREATE TABLE<\/b>-Anweisung.<\/p>\n<p>Das wird verst&auml;ndlicher, wenn man sich die &Uuml;berschrift des unteren Bereichs anschaut, n&auml;mlich <b>Comparison Details<\/b>. Hier werden also schlicht die Unterschiede in Form von SQL-Anweisungen abgebildet.<\/p>\n<h2>Vergleichsrichtung umdrehen<\/h2>\n<p>Um f&uuml;r uns sinnvollere Aktionen im oberen Bereich zu sehen, k&ouml;nnen wir nun oben auf <b>Switch Direction <\/b>klicken.<\/p>\n<p>Der Vergleich wird erneut durchgef&uuml;hrt und in einer f&uuml;r uns verst&auml;ndlicheren Weise angezeigt (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_472_010.png\" alt=\"Anweisung, um eine Tabelle neu zu erstellen\" width=\"674,627\" height=\"600,942\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Anweisung, um eine Tabelle neu zu erstellen<\/span><\/b><\/p>\n<p>Um also in der &auml;lteren Datenbank den Zustand der neueren Datenbank zu erhalten, m&uuml;ssten wir die aufgelisteten Aktionen ausf&uuml;hren. Und im unteren Bereich sehen wir die daf&uuml;r notwendige SQL-Abfrage.<\/p>\n<h2>Skript zur Aktualisierung erstellen<\/h2>\n<p>Wir haben jetzt verschiedene M&ouml;glichkeiten. Wir k&ouml;nnen zum Beispiel mit einem Klick auf <b>Generate Skript <\/b>ein SQL-Skript erstellen lassen, das die Unterschiede zwischen den beiden Datenbanken erfasst und zum Aktualisieren der Datenbank aus <b>Target<\/b> f&uuml;hrt.<\/p>\n<p>Dies dauert wiederum ein paar Sekunden und liefert dann das gew&uuml;nschte Skript.<\/p>\n<p>Dieses Skript k&ouml;nnen wir allerdings nicht direkt im SQL Server Management Studio ausf&uuml;hren, da es f&uuml;r SQLCMD ausgelegt ist, und auch hier funktioniert es nicht direkt fehlerfrei. <\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Das Ziel dieses Artikels war aber ohnehin nur, die &Auml;nderungen zwischen zwei Versionen einer Datenbank herauszufinden, um diese Unterschiede in einer eigenen Update-Routine automatisch an die &auml;ltere Datenbank &uuml;bertragen zu k&ouml;nnen. Dazu k&ouml;nnen wir die Ansicht der Unterschiede hervorragend nutzen. Wie das Update gelingt, zeigen wir in einem weiteren Artikel namens <b>SQL Server-Datenbank von Access aus updaten <\/b>(<b>www.vbentwickler.de\/1<\/b>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt verschiedene Gr&uuml;nde, zwei Datenbanken miteinander zu vergleichen. Wenn uns zwei Versionen einer Datenbank vorliegen, unterscheiden diese sich gegebenenfalls und wir m&ouml;chten herausfinden, welche die aktuellere ist. Bei der Gelegenheit kann man auch gleich noch pr&uuml;fen, welche Unterschiede zwischen den Datenbanken es &uuml;berhaupt gibt. Damit er&ouml;ffnen sich praktische M&ouml;glichkeiten: So k&ouml;nnen wir etwa ein Skript erstellen lassen, welches die Unterschiede zwischen zwei Versionen einer Datenbank aufzeigt. Damit erkennen wir nicht nur die Unterschiede selbst, sondern k&ouml;nnen das Skript sogar nutzen, um die &auml;ltere der beiden Datenbanken auf den aktuellen Stand bringen. Das ist hilfreich, wenn wir eine beim Kunden befindliche Datenbank aktualisieren wollen. Wir erstellen dann einfach ein Skript mit den Unterschieden und f&uuml;hren es beim Kunden aus, damit er die aktuellste Version der Datenbank erh&auml;lt. F&uuml;r das Ermitteln der Unterschiede gibt es verschiedene Werkzeuge, etwa die SQL Server-Tools f&uuml;r Visual Studio Code, die leichtgewichtige Entwicklungsumgebung von Microsoft. In diesem Artikel zeigen wir, wie dieses installiert wird und wie wir die SQL Server-Tools aktivieren und nutzen, um die Unterschiede zwischen zwei Datenbanken in einem Skript zusammenzustellen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662025,66062025,44000020,44000006,44000022],"tags":[],"yst_prominent_words":[],"class_list":["post-55000472","post","type-post","status-publish","format-standard","hentry","category-662025","category-66062025","category-Entity_Framework_Core","category-SQL_Server_und_Co","category-Von_Access_zu_NET"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000472"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000472\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000472"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}