{"id":55001498,"date":"2024-08-01T00:00:00","date_gmt":"2024-08-01T09:53:38","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1498"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Access_und_SQL_Server_Der_MigrationsWizard","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/","title":{"rendered":"Access und SQL Server: Der Migrations-Wizard"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8\" width=\"1\" height=\"1\" alt=\"\"><b>Wer schnell die Tabellen einer Access-Datenbank zum SQL Server migrieren m&ouml;chte, kann dazu ein kostenloses Tool von Microsoft nutzen: Den SQL Server Migration Assistant, in diesem Fall in der Ausf&uuml;hrung f&uuml;r Access. Wie wir die Tabelle einer Access-Datenbank zum SQL Server &uuml;bertragen und gleichzeitig auch noch die passenden Verkn&uuml;pfungen f&uuml;r den Zugriff auf diese Datenbank erstellen, zeigen wir in diesem Beitrag.  Dabei nutzen wir die schnellste zur Verf&uuml;gung stehende Methode, n&auml;mlich den Migration Wizard, ein Assistent im Assistenten. Im besten Fall kann man danach direkt von der Access-Datenbank auf die Daten im SQL Server-Backend zugreifen. Gegebenenfalls sind noch Vor- und Nacharbeiten erforderlich, um die k&uuml;mmern wir uns jedoch in eigenen Beitr&auml;gen.<\/b><\/p>\n<h2>Voraussetzungen<\/h2>\n<p>Wenn Sie die Beispiele dieses Beitrags ausprobieren m&ouml;chten, ben&ouml;tigen Sie eine Installation des SQL Servers mit der M&ouml;glichkeit, dort eine neue Datenbank anzulegen, das SQL Server Management Studio, um das Ergebnis zu betrachten, eine eigene Access-Datenbank oder die Beispieldatenbank aus dem Download zu diesem Artikel als Testmaterial.<\/p>\n<p>Au&szlig;erdem wollen wir den SQL Server Migration Assistant f&uuml;r Access herunterladen, den wir beispielsweise &uuml;ber Google mit den Suchbegriffen <b>sql server migration assistant for access <\/b>finden sollten.<\/p>\n<p>Damit landen wir schnell auf der Microsoft-Seite mit dem Download dieses kostenlosen Tools, das wir hier direkt herunterladen k&ouml;nnen.<\/p>\n<p>Beim Download taucht gegebenenfalls ein Dialog auf, der nach der gew&uuml;nschten Version fragt. Hier stehen die 32-Bit- und die 64-Bit-Variante zur Verf&uuml;gung. Welche Sie w&auml;hlen, h&auml;ngt von der Office-Version ab, die auf dem Zielsystem installiert ist, nicht von der Windows-Version. Wir haben aktuell noch Office in der 32-Bit-Version installiert, also verwenden wir den Download <b>SSMAforAccess_9.5.0_x86.msi <\/b>(siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_001.png\" alt=\"Auswahl der gew&uuml;nschten Version des SSMA\" width=\"424,5589\" height=\"401,0907\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Auswahl der gew&uuml;nschten Version des SSMA<\/span><\/b><\/p>\n<p>Nachdem Download f&uuml;hren wir die <b>.msi<\/b>-Datei aus und installieren so den <b>SQL Server Migration Assistant for Access<\/b>, von nun an kurz <b>SSMA <\/b>genannt.<\/p>\n<h2>Erster Start des SSMA<\/h2>\n<p>Nach dem Start erscheint der SSMA bildschirmf&uuml;llend und bietet einen <b>Migration Wizard<\/b> zur Unterst&uuml;tzung an (siehe Bild 2). Diesen k&ouml;nnen wir per Klick auf die Option <b>Launch this Wizard at Startup <\/b>f&uuml;r zuk&uuml;nftige Starts deaktivieren, wenn wir diesen nicht mehr nutzen wollen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_002.png\" alt=\"Der Migrations-Assistent\" width=\"649,559\" height=\"428,6333\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Der Migrations-Assistent<\/span><\/b><\/p>\n<p>Vorerst wollen wir diesen Wizard jedoch nutzen, um eine schnelle, erste Migration durchzuf&uuml;hren.<\/p>\n<p>F&uuml;r einen &Uuml;berblick &uuml;ber die anstehenden Aufgaben bietet es sich an, sich den Ablauf einmal anzusehen, der wie folgt aussieht:<\/p>\n<ul>\n<li>Erstellen eines neuen SSMA-Projekts<\/li>\n<li>Hinzuf&uuml;gen von Access-Datenbankdateien zum Migrationsprojekt<\/li>\n<li>Auswahl der zu migrierenden Objekte<\/li>\n<li>Verbinden zum SQL Server oder zur Azure Datenbank<\/li>\n<li>Optional: Verkn&uuml;pfen der migrierten Tabellen<\/li>\n<li>&Uuml;bertragen der Objekte und Migrieren der Daten<\/li>\n<\/ul>\n<p>Wir f&uuml;hren die Schritte einmal anhand einer kleinen Beispieldatenbank durch.<\/p>\n<p>Diese Beispieldatenbank stellen wir im Beitrag <b>Datenmodell Mitarbeiterverwaltung <\/b>(<b>www.access-im-unternehmen.de\/19<\/b>) vor.<\/p>\n<h2>Erstellen des Migrationsprojekts<\/h2>\n<p>Im ersten Schritt des <b>Migration Wizard <\/b>finden wir die Eingabem&ouml;glichkeiten aus Bild 3 vor. Dieser erwartet die Eingabe von drei Informationen. Die erste ist der Name, unter dem wir die neue Migration speichern wollen. Hier geben wir beispielsweise <b>Migration_Mitarbeiterverwaltung <\/b>an. Unter <b>Location <\/b>legen wir fest, in welchem Verzeichnis die Projektdatei gespeichert wird.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_003.png\" alt=\"Schritt 1 des Migration Wizard: Erstellen eines neuen Projekts\" width=\"649,559\" height=\"428,6333\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Schritt 1 des Migration Wizard: Erstellen eines neuen Projekts<\/span><\/b><\/p>\n<p>Der Dateiname ergibt sich aus dem Namen f&uuml;r die Migration und die Dateiendung <b>.ssma<\/b>. Schlie&szlig;lich w&auml;hlen wir noch die Version des SQL Server aus, der als Ziel der Migration dienen soll. Damit k&ouml;nnen wir mit einem Klick auf die Schaltfl&auml;che <b>Next <\/b>den ersten Schritt abschlie&szlig;en.<\/p>\n<h2>Hinzuf&uuml;gen von Access-Datenbankdateien zum Migrationsprojekt<\/h2>\n<p>Dieser Schritt ist nur in unserem Fall schnell zu erledigen, denn wir haben lediglich eine einzige Datenbankdatei, in der sich die zu migrierenden Tabellen befinden.<\/p>\n<p>Wir klicken also auf <b>Add Databases <\/b>und w&auml;hlen im folgenden <b>Dateiauswahldialog <\/b>die Datenbank <b>Mitarbeiterverwaltung.accdb <\/b>aus. Damit k&ouml;nnen wir in diesem Fall direkt zum n&auml;chsten Schritt fortfahren (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_004.png\" alt=\"Schritt 2 des Migration Wizard: Hinzuf&uuml;gen der Datenbank, deren Tabellen migriert werden sollen\" width=\"649,559\" height=\"428,6333\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Schritt 2 des Migration Wizard: Hinzuf&uuml;gen der Datenbank, deren Tabellen migriert werden sollen<\/span><\/b><\/p>\n<h2>Auswahl der Datenbankdatei bei aufgeteilten Datenbanken<\/h2>\n<p>Etwas komplizierter wird es jedoch, wenn wir nicht mit einer einzigen Datenbankdatei arbeiten, sondern wenn dieser bereits aufgeteilt ist &#8211; in ein Frontend und ein Backend oder sogar mehrere Frontends, die auf das Backend zugreifen. Es gibt auch noch kompliziertere Konstellationen mit mehreren Frontends und mehreren Backends, aber auf diesen Fall wollen wir an dieser Stelle nicht eingehen.<\/p>\n<p>Wenn wir eine Anwendung mit Datenbankfrontend und -backend verwenden, enth&auml;lt das Frontend in der Regel die Anwendungslogik (also Abfragen, Formulare, Berichte und VBA-Code) sowie Tabellenverkn&uuml;pfungen, &uuml;ber die man auf die Tabellen im Backend zugreifen kann.<\/p>\n<p>Im Backend hingegen befinden sich ausschlie&szlig;lich die Tabellen der Anwendung. Es kann f&uuml;r spezielle Aufgaben auch noch Tabellen im Frontend geben, aber diese w&uuml;rde man, wenn man sie im Frontend-Backend-Szenario nicht in das Backend &uuml;berf&uuml;hrt hat, vermutlich auch nicht in die SQL Server-Datenbank geben.<\/p>\n<p>Intuitiv w&uuml;rde man nun m&ouml;glicherweise die Backend-Datenbank als Quelle f&uuml;r die Migration der Datenbank zum SQL Server angeben.<\/p>\n<p>Wenn wir allerdings im gleichen Schritt die Funktion des <b>Migration Wizard <\/b>nutzen wollen, um die Tabellenverkn&uuml;pfungen hinzuzuf&uuml;gen, ergibt dies keinen Sinn: Die Tabellenverkn&uuml;pfungen f&uuml;r den Zugriff auf die Tabellen im SQL Server w&uuml;rden dann n&auml;mlich im Backend der Access-Datenbank landen.<\/p>\n<p>Die zweite Option ist, dennoch das Backend als Quelle f&uuml;r die Migration zu verwenden und anschlie&szlig;end die Tabellenverkn&uuml;pfungen zum SQL Server auf eine andere Weise als mit dem Migration Wizard zu erledigen.<\/p>\n<p>Bleiben noch zwei M&ouml;glichkeiten: Wir geben beide Datenbankdateien an oder wir geben nur die Frontenddatenbank als Quelle f&uuml;r die Migration an.<\/p>\n<p>Wir betrachten erst den letzteren Fall: Hier w&uuml;rde der Migration Wizard &uuml;ber die Tabellenverkn&uuml;pfungen im Frontend auf die Tabellen im Backend zugreifen, diese migrieren, und auf Wunsch die Tabellenverkn&uuml;pfungen auf den SQL Server zum Frontend hinzuf&uuml;gen.<\/p>\n<p>Dabei w&uuml;rden die zuvor auf die Tabellen im Access-Backend verweisenden Tabellenverkn&uuml;pfungen umbenannt werden und die neuen Tabellenverkn&uuml;pfungen erhalten deren Originalnamen. Dies ist die von uns empfohlene Vorgehensweise bei vorliegendem Frontend und Backend auf Access-Basis.<\/p>\n<p>Schauen wir uns noch kurz an, was passiert, wenn wir beide Datenbanken einer Frontend-Backend-Konstellation als Quelle f&uuml;r die Migration hinzuf&uuml;gen: Dann haben wir sp&auml;ter auch die M&ouml;glichkeit, sowohl die Tabellenverkn&uuml;pfungen aus dem Frontend auszuw&auml;hlen als auch die Originaltabellen aus dem Backend.<\/p>\n<p>Wenn wir beide ausw&auml;hlen, geschieht logischerweise Folgendes: Die Tabellen aus der zuerst angegebenen Quelldatenbank werden in den SQL Server geschrieben. F&uuml;r die gleichnamigen Tabellen der zweiten Datenbank fragt der Migration Wizard, ob die bereits vorhandenen Tabellen (die von der anderen Quelle) &uuml;berschrieben werden sollen.<\/p>\n<p>Es landet also ohnehin nur eine Kopie der jeweiligen Tabelle in der SQL Server-Datenbank.<\/p>\n<p>Daf&uuml;r erhalten wir in beiden Quelldatenbanken, also im Frontend und im Backend, jeweils die Verkn&uuml;pfungen auf diese Tabellen.<\/p>\n<p>Wie gesagt: In diesem Kontext macht es keinen Sinn, Frontend und Backend als Datenquelle anzugeben.<\/p>\n<p>Zusammengefasst:<\/p>\n<ul>\n<li>Wenn es ohnehin nur eine Access-Datenbankdatei gibt, wird diese als Quelle angegeben.<\/li>\n<li>Wenn die Datenbank auf Frontend- und Backenddatei aufgeteilt ist, geben wir die Frontend-Datenbank als Quelle f&uuml;r den Migration Wizard an.<\/li>\n<\/ul>\n<h2>Auswahl der zu migrierenden Objekte<\/h2>\n<p>Im folgenden Schritt zeigt der Migration-Wizard auf der linken Seite die gew&auml;hlten Datenbanken und die enthaltenen Objekte an. Dort werden nicht nur Tabellen, sondern, falls vorhanden, auch Abfragen angezeigt (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_005.png\" alt=\"Schritt 3 des Migration Wizard: Auswahl der zu migrierenden Objekte\" width=\"649,559\" height=\"428,6333\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Schritt 3 des Migration Wizard: Auswahl der zu migrierenden Objekte<\/span><\/b><\/p>\n<p>In diesem Fall wollen wir nur die Tabellen migrieren. Abfragen kann man zwar auch direkt in entsprechende SQL Server-Objekte migrieren, in der Regel enthalten Access-Abfragen jedoch Elemente, die nicht SQL Server-kompatibel sind und viel Nacharbeit erfordern.<\/p>\n<p>Wir wollen uns daher an dieser Stelle auf die Migration der Tabellen beschr&auml;nken.<\/p>\n<p>Wir haben hier die Gelegenheit, entweder einfach alle Tabellen zu migrieren oder diese noch manuell aus- oder abzuw&auml;hlen. Gegebenenfalls befinden sich unter den Tabellen solche, die nur tempor&auml;r und lokal genutzt werden sollen und die wir von der Migration ausklammern sollten &#8211; dann gibt es an dieser Stelle die Gelegenheit dazu.<\/p>\n<p>In diesem Fall &uuml;bernehmen wir einfach alle Tabellen und springen mit einem Klick auf die <b>Next<\/b>-Schaltfl&auml;che zum n&auml;chsten Schritt.<\/p>\n<h2>Verbinden zum SQL Server oder zur Azure Datenbank<\/h2>\n<p>Im n&auml;chsten Schritt legen wir verschiedene Informationen fest, mit denen wir auf die Zieldatenbank eingehen (siehe Bild 6):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_006.png\" alt=\"Schritt 4 des Migration Wizard: Eingeben von Informationen zur Zieldatenbank\" width=\"649,559\" height=\"428,6333\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Schritt 4 des Migration Wizard: Eingeben von Informationen zur Zieldatenbank<\/span><\/b><\/p>\n<ul>\n<li><b>Server name<\/b>: Gibt die IP-Adresse oder den Namen des SQL Servers an, gegebenenfalls gefolgt vom Namen einer benannten Instanz.<\/li>\n<li><b>Server port<\/b>: Gibt den Server-Port an, hier kann man in der Regel den Wert <b>[default]<\/b> beibehalten.<\/li>\n<li><b>Database<\/b>: Gibt den Namen der Datenbank an. Bei der erstmaligen Migration k&ouml;nnen wir den Namen einer bereits vorhandenen Datenbank als Ziel angeben oder wir legen den Namen der zu erstellenden Datenbank fest.<\/li>\n<li><b>Authentication<\/b>: Gibt die Authentifizierungsmethode an. <b>Windows Authentication <\/b>wird verwendet, wenn man sich auf dem gleichen Rechner oder in der gleichen Dom&auml;ne wie der SQL Server befindet, ansonsten wird meist <b>SQL Server Authentication <\/b>genutzt. Die beiden folgenden Textfelder werden nur freigeschaltet, wenn man SQL Server Authentication w&auml;hlt, denn sonst erfolgt die Anmeldung &uuml;ber das Windows-Konto des aktuellen Benutzers.<\/li>\n<li><b>User name<\/b>: Nimmt bei SQL Server-Authentifizierung den Benutzernamen entgegen, der im SQL Server definiert sein muss.<\/li>\n<li><b>Password<\/b>: Nimmt bei Verwendung der SQL Server-Authentifizierung das Kennwort entgegen.<\/li>\n<li><b>Encrypt Connection<\/b>: Gibt an, ob die Verbindung verschl&uuml;sselt werden soll. Wird diese Option aktiviert, erscheint noch eine weitere Option namens <b>Trust Server Certificate<\/b> (siehe Bild 7).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_007.png\" alt=\"Einstellungen f&uuml;r Verschl&uuml;sselung\" width=\"424,5589\" height=\"312,1461\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Einstellungen f&uuml;r Verschl&uuml;sselung<\/span><\/b><\/p>\n<\/ul>\n<p>Beim Mausklick auf die Schaltfl&auml;che <b>Next <\/b>erscheint eine Meldung mit der R&uuml;ckfrage, ob die angegebene Datenbank, die noch nicht im SQL Server enthalten ist, neu angelegt werden soll, was wir mit einem Klick auf die Schaltfl&auml;che <b>Ja <\/b>best&auml;tigen (siehe Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_008.png\" alt=\"Frage, ob die Datenbank neu erstellt werden soll\" width=\"424,5589\" height=\"160,93\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Frage, ob die Datenbank neu erstellt werden soll<\/span><\/b><\/p>\n<h2>Optional: Verkn&uuml;pfen der migrierten Tabellen<\/h2>\n<p>Einen Schritt sp&auml;ter fragt der Migration Wizard noch, ob die Tabellen direkt in die Quelltabelle eingebunden werden sollen (siehe Bild 9). Da wir die Datenbank nach der Migration m&ouml;glichst direkt mit den SQL Server-Tabellen verwenden wollen, aktivieren wir die entsprechende Option.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_009.png\" alt=\"Schritt 5 des Migration Wizard: Angabe, ob die Tabellen direkt verkn&uuml;pft werden sollen\" width=\"649,559\" height=\"428,6333\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Schritt 5 des Migration Wizard: Angabe, ob die Tabellen direkt verkn&uuml;pft werden sollen<\/span><\/b><\/p>\n<h2>&Uuml;bertragen der Objekte und Migrieren der Daten<\/h2>\n<p>Im n&auml;chsten Schritt startet die Migration. Dabei werden zuerst, wie im Bereich <b>Convert selected objects<\/b>, die zu migierenden Objekte konvertiert (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_010.png\" alt=\"Migration: Konvertieren der zu migrierenden Objekte\" width=\"649,559\" height=\"428,6333\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Migration: Konvertieren der zu migrierenden Objekte<\/span><\/b><\/p>\n<p>Beim Konvertieren werden meist direkt ein paar Fehler, Warnungen und Hinweise produziert. <\/p>\n<p>Dann folgt der n&auml;chste Schritt, wo die konvertierten Elemente in die SQL Server-Datenbank geladen werden, was bedeutet, dass die entsprechenden Elemente in der Datenbank angelegt werden (Bereich <b>Load converted objects into the target database<\/b>). Am Ende dieses Schrittes erscheint der Dialog <b>Synchronize with the Database <\/b>(siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_011.png\" alt=\"Zuordnung der zu erstellenden Tabellen festlegen\" width=\"700\" height=\"448,7586\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Zuordnung der zu erstellenden Tabellen festlegen<\/span><\/b><\/p>\n<p>Dieser zeigt auf der rechten Seite alle zu migrierenden Tabellen an, auf der rechten Seite steht &uuml;berall der Eintrag <b>[Not Found]<\/b>.<\/p>\n<p>Das ist kein Problem, sondern eher erwartungsgem&auml;&szlig;. Erst wenn wir eine Datenbank migrieren, die bereits im SQL Server vorhanden ist, werden hier gegebenenfalls gleichnamige Tabellen zur Zuordnung angeboten.<\/p>\n<p>Also behalten wir die Einstellungen so bei und klicken auf <b>OK<\/b>.<\/p>\n<p>Danach startet das Anlegen der Objekte in der Zieldatenbank (siehe Bild 12). Auch hier gibt es gegebenenfalls wieder Fehler et cetera.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_012.png\" alt=\"Anlegen der Datenbankobjekte in der Zieldatenbank\" width=\"499,5589\" height=\"181,6577\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Anlegen der Datenbankobjekte in der Zieldatenbank<\/span><\/b><\/p>\n<p>Schlie&szlig;lich folgt die Migration der Daten aus den Originaltabellen in die Zieltabellen und direkt im Anschluss, sofern wir dies im Wizard aktiviert haben, die Erstellung von Tabellenverkn&uuml;pfungen (siehe Bild 13).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_013.png\" alt=\"Migrieren der Tabellendaten\" width=\"649,559\" height=\"492,7368\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Migrieren der Tabellendaten<\/span><\/b><\/p>\n<p>Hier m&uuml;ssen wir erneut die Authentifizierung durchf&uuml;hren, um den Zugriff auf die Tabellen zu erlauben.<\/p>\n<p>Damit ist dieser Teil der Migration abgeschlossen (siehe Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_014.png\" alt=\"Abschluss der Migration\" width=\"649,559\" height=\"428,6333\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Abschluss der Migration<\/span><\/b><\/p>\n<h2>Fehler, Warnungen und Hinweise untersuchen<\/h2>\n<p>Damit schauen wir uns nun die Fehler, Warnungen und Hinweise der verschiedenen Phasen der Migration an. Zuerst klicken wir auf den Link im Bereich <b>Convert selected objects<\/b>. Dies liefert einen Dialog, der die Meldungen auflistet und weitere Informationen dazu liefert (siehe Bild 15).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_015.png\" alt=\"Untersuchen der Fehler, Warnungen und Hinweise\" width=\"700\" height=\"335,7505\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Untersuchen der Fehler, Warnungen und Hinweise<\/span><\/b><\/p>\n<p>Klicken wir doppelt auf einen der Eintr&auml;ge, wird das Element der Quelldatenbank markiert, der f&uuml;r die Meldung verantwortlich ist. Eine Zusammenfassung der g&auml;ngigsten Fehler, Warnungen und Hinweise schauen wir uns noch in einem sp&auml;teren Beitrag an.<\/p>\n<p>Um die &Uuml;bersicht bei vielen Meldungen zu erh&ouml;hen, k&ouml;nnen wir durch einen Klick auf die entsprechenden Schaltfl&auml;chen <b>Errors<\/b>, <b>Warnings <\/b>und <b>Informationen <\/b>ein- und ausblenden. Auf die gleiche Weise k&ouml;nnen wir die Meldungen f&uuml;r die &uuml;brigen Bereiche betrachten und den Dialog dann schlie&szlig;en.<\/p>\n<h2>Ergebnis im SQL Server Migration Assistant betrachten<\/h2>\n<p>Nun finden wir das Hauptfenster des SQL Server Migration Assistant mit allen bei der Migration angefallen Daten vor (siehe Bild 16).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_016.png\" alt=\"Der SQL Server Migration Assistant nach der Migration\" width=\"700\" height=\"618,7386\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Der SQL Server Migration Assistant nach der Migration<\/span><\/b><\/p>\n<p>Die oberen Bereiche auf der linken und der rechten Seite enthalten einige Informationen rund um die Elemente der Quell- und der Zieldatenbank. Interessant sind jedoch zun&auml;chst die Ergebnisse im unteren Bereich.<\/p>\n<p>Hier sehen wir nicht nur die Fehler, Warnungen und Informationen, die wir bereits unmittelbar nach der Migration zu sehen bekommen haben, sondern auch noch eine Auflistung aller durchgef&uuml;hrten Aktionen in Textform &#8211; siehe im Bereich <b>Output<\/b>.<\/p>\n<h2>Analysieren der Ergebnisse<\/h2>\n<p>Wenn wir die Ergebnisse analysieren wollen, wird das je nach der Anzahl der Eintr&auml;ge mehr oder weniger aufw&auml;ndig. Bei vielen Eintr&auml;gen k&ouml;nnen wir, wie bereits weiter oben beschrieben, die Fehler, Warnungen und Informationen einzeln ein- und ausblenden. Allerdings kann es auch vorkommen, dass wir allein mehrere Hundert Eintr&auml;ge im Bereich <b>Warnungen <\/b>erhalten. Da diese Eintr&auml;ge in dieser Ansicht nicht sortierbar sind, ist eine Idee, diese in eine Excel- oder Access-Tabelle zu kopieren und dort die entsprechenden Sortierungen und Filterungen durchzuf&uuml;hren.<\/p>\n<p>Beim Markieren aller Eintr&auml;ge beispielsweise mit der Tastenkombination <b>Strg + A <\/b>und dem anschlie&szlig;enden Einf&uuml;gen in eine Tabelle stellen wir jedoch schnell fest, dass nur die aktuell sichtbaren Elemente kopiert werden. Wir k&ouml;nnen ein wenig mehr Element auf einmal kopieren, wenn wir die Anzeige dieses Bereichs vergr&ouml;&szlig;ern, aber bei vielen hundert Eintr&auml;gen macht auch dies keinen besonderen Spa&szlig;. <\/p>\n<p>Eine Alternative dazu ist es, den Text im Bereich <b>Output <\/b>zu in die Zwischenablage zu kopieren und diesen in eine Excel-Tabelle einzuf&uuml;gen. Dieser enth&auml;lt zwar nicht nur die Meldungen, sondern insgesamt alle Aktionen. <\/p>\n<p>Damit sehen wir zwar alle Aktionen und Meldungen in einer Datei, aber richtig komfortabel ist dies noch nicht. Also gehen wir einen Schritt weiter und programmieren eine L&ouml;sung, die uns die ben&ouml;tigten Informationen in eine Access-Tabelle extrahiert.<\/p>\n<p>Wichtig: Die Meldungen und den Output kann man nur innerhalb der Session einsehen. Deshalb sollten Sie diesen, wenn dieser noch genauer ausgewertet werden soll, unbedingt kopieren und an einem anderen Ort speichern, um die Meldungen sp&auml;ter weiterverarbeiten zu k&ouml;nnen.<\/p>\n<p>In diesem Fall k&ouml;nnen Sie direkt die Beispieldatenbank zum Auswerten der Meldungen verwenden, die wir in einem weiteren Beitrag beschreiben.<\/p>\n<h2>Weitere Ergebnisse der Migration<\/h2>\n<p>Die Meldungen sind nur Informationen dar&uuml;ber, was gegebenenfalls nicht funktioniert hat und wo man als Entwickler noch einmal hinschauen sollte. Die eigentliche Arbeit des <b>Migration Wizard <\/b>ist jedoch die Migration der Tabellen, Indizes und Beziehungen in eine gegebenenfalls neu zu erstellende SQL Server-Datenbank, das &Uuml;bertragen der Daten und, falls gew&uuml;nscht, das Erstellen von Tabellenverkn&uuml;pfungen in der verwendeten Datenbank mit den Tabellen im SQL Server.<\/p>\n<p>Dieses Ergebnis schauen wir uns nun an. Der erste Teil spielt sich im SQL Server ab. Diesen sehen wir uns mit dem SQL Server Management Studio an.<\/p>\n<p>Hier sehen wir, dass die neue Datenbank angelegt wurde und die gew&uuml;nschten Tabellen enth&auml;lt (siehe Bild 17).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_017.png\" alt=\"Die neue Datenbank im SQL Server\" width=\"424,5589\" height=\"629,9905\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Die neue Datenbank im SQL Server<\/span><\/b><\/p>\n<p>Der zweite Teil ist interessanter. Hier sehen wir im Navigationsbereich von Access im oberen Bereich die lokalen Tabellen, die durch den SQL Server Migration Assistant umbenannt wurden.<\/p>\n<p>Darunter sehen wir die neuen Tabellenverkn&uuml;pfungen (siehe Bild 18).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_018.png\" alt=\"&Auml;nderungen in der Access-Datenbank\" width=\"424,5589\" height=\"1129,468\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 18: &Auml;nderungen in der Access-Datenbank<\/span><\/b><\/p>\n<p>Durch die Umbenennung der vorherigen Tabellen mit dem Voranstellen der Zeichenkette <b>SSMA$<\/b> und dem Anh&auml;ngen der Zeichenkette <b>$local <\/b>und das Bezeichnen der neuen Tabellenverkn&uuml;pfungen mit den Namen der urspr&uuml;nglichen lokalen Tabellen kann man die Datenbank in der Regel genauso weiterverwenden wie zuvor &#8211; nur, dass die Daten jetzt aus den SQL Server-Tabellen kommen und nicht mehr aus den lokalen Access-Tabellen.<\/p>\n<p>Aus der vorherigen lokalen Tabelle <b>tblAnreden <\/b>ist nun die lokale Tabelle <b>SSMA$tblAnreden$local <\/b>geworden.<\/p>\n<h2>Nachschlagefelder bleiben erhalten<\/h2>\n<p>Aber es wurden nicht nur stumpf Tabellenverkn&uuml;pfungen erzeugt, wie es geschieht, wenn wir beispielsweise die Tabellen einer SQL Server-Datenbank mit dem Assistenten f&uuml;r das Verkn&uuml;pfen mit ODBC-Datenbanken verkn&uuml;pfen. <\/p>\n<p>Wenn wir einmal die Tabellenverkn&uuml;pfung <b>tblMitarbeiter <\/b>&ouml;ffnen, finden wir hier n&auml;mlich sowohl das Nachschlagefeld f&uuml;r das Feld <b>AnredeID <\/b>als auch f&uuml;r das Feld <b>LandID <\/b>durch ein Kombinationsfeld abgebildet vor (siehe Bild 19).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_019.png\" alt=\"Nachschlagefelder in der verkn&uuml;pften Tabelle\" width=\"549,559\" height=\"355,4728\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 19: Nachschlagefelder in der verkn&uuml;pften Tabelle<\/span><\/b><\/p>\n<p>Diesen Vorteil verlieren wir sp&auml;testens dann, wenn wir die Tabellenverkn&uuml;pfungen einmal l&ouml;schen und erneut anlegen. Wir k&ouml;nnen dann nur Folgendes tun:<\/p>\n<ul>\n<li>Tabellenverkn&uuml;pfungen nicht l&ouml;schen, sondern immer nur aktualisieren oder<\/li>\n<li>die Tabellenverkn&uuml;pfungen beim erneuten Anlegen nachtr&auml;glich mit Eigenschaften wie beispielsweise f&uuml;r die Nachschlagefelder ausstatten<\/li>\n<\/ul>\n<h2>Weitere Besonderheiten der umbenannten lokalen Tabellen und der Tabellenverkn&uuml;pfungen<\/h2>\n<p>Der SQL Server Migration Assistant bietet eine Funktion, mit denen die Tabellenverkn&uuml;pfungen r&uuml;ckg&auml;ngig gemacht werden k&ouml;nnen. Das bedeutet, dass die Tabellenverkn&uuml;pfungen gel&ouml;scht werden und die urspr&uuml;nglichen lokalen Tabellen ihre alten Namen zur&uuml;ckbekommen.<\/p>\n<p>Um zu erkennen, welche Tabellenverkn&uuml;pfungen zu entfernen sind und welche lokalen Tabellen umbenannt werden sollen, hat der SSMA diesen Tabellen jeweils eine zus&auml;tzliche Eigenschaft hinzugef&uuml;gt.<\/p>\n<p>Mit der folgenden VBA-Prozedur k&ouml;nnen wir alle Eigenschaften einer Tabelle im Direktbereich des VBA-Editors ausgeben lassen:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>Tabelleneigenschaften(strTabelle<span style=\"color:blue;\"> As String<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>tdf<span style=\"color:blue;\"> As <\/span>DAO.TableDef\r\n     <span style=\"color:blue;\">Dim <\/span>prp<span style=\"color:blue;\"> As <\/span>DAO.Property\r\n     <span style=\"color:blue;\">Dim <\/span>strValue<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     <span style=\"color:blue;\">Set<\/span> tdf = db.TableDefs(strTabelle)\r\n     For Each prp In tdf.Properties\r\n         strValue = \"\"\r\n         On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n         strValue = prp.Value\r\n         <span style=\"color:blue;\">If <\/span>Err.Number = 0<span style=\"color:blue;\"> Then<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> prp.Name, prp.Value\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> prp.Name, Err.Number, Err.Description\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n     <span style=\"color:blue;\">Next<\/span> prp\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Lassen wir diese einmal durchlaufen f&uuml;r eine der Tabellen, die umbenannt wurden, finden wir hier schnell die gesuchte Eigenschaft (siehe Bild 20):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_020.png\" alt=\"Ausgabe der Tabelleneigenschaften\" width=\"499,5589\" height=\"276,3882\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 20: Ausgabe der Tabelleneigenschaften<\/span><\/b><\/p>\n<pre>Tabelleneigenschaften \"SSMA$tblAbteilungen$local\"<\/pre>\n<p>Diese hei&szlig;t <b>SSMATableState <\/b>und lautet hier <b>back up copy<\/b>.<\/p>\n<p>Lassen wir diese Prozedur f&uuml;r die per ODBC eingebundene Tabelle <b>tblAbteilungen <\/b>laufen, finden wir eine Eigenschaft namens <b>SSMATableState <\/b>mit dem Wert <b>linked and backed up<\/b>.<\/p>\n<h2>Voreinstellungen von Optionen f&uuml;r die Migration<\/h2>\n<p>Wenn wir wie in diesem Beitrag den <b>Migration Wizard <\/b>f&uuml;r die Durchf&uuml;hrung der Migration verwenden, verwendet dieser die Standardoptionen f&uuml;r die Migration. Wenn wir manuell ein neues Migrationsprojekt erstellen, k&ouml;nnen wir, nachdem wir die Quelldatenbank definiert haben, noch weitere Einstellungen vornehmen, bevor wir die Migration starten. <\/p>\n<p>Diese Einstellungen k&ouml;nnen wir auch als Standard festlegen, damit auch die Migration &uuml;ber den <b>Migration Wizard <\/b>mit diesen Einstellungen durchgef&uuml;hrt wird.<\/p>\n<p>Dazu bet&auml;tigen wir den Men&uuml;eintrag <b>Tools|Default Project Settings <\/b>(siehe Bild 21). Unter <b>Tools|Project Settings <\/b>k&ouml;nnen wir die Einstellungen des aktuell ge&ouml;ffneten Projekts individuell anpassen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_021.png\" alt=\"&Ouml;ffnen der Standardeigenschaften\" width=\"424,5589\" height=\"370,0998\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 21: &Ouml;ffnen der Standardeigenschaften<\/span><\/b><\/p>\n<h2>Immer Timestamp-Feld hinzuf&uuml;gen<\/h2>\n<p>Auf der Seite <b>Conversion <\/b>in dem nun erscheinenden Dialog k&ouml;nnen wir im Bereich <b>Tables <\/b>f&uuml;r die Option <b>Add timestamp columns <\/b>den Wert <b>Always <\/b>ausw&auml;hlen (siehe Bild 22).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_022.png\" alt=\"Einstellen des Anlegens von Timestamp-Feldern\" width=\"599,559\" height=\"433,7616\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 22: Einstellen des Anlegens von Timestamp-Feldern<\/span><\/b><\/p>\n<p>Damit legen wir fest, dass f&uuml;r jede Tabelle ein <b>Timestamp<\/b>-Feld hinterlegt wird. Access kann bei Vorhandensein von Timestamp-Feldern leichter erkennen, ob ein Datensatz seit dem &Ouml;ffnen ge&auml;ndert wurde. Das wirkt sich nicht zuletzt auf die Performance aus, da so nicht alle Felder des Datensatzes auf &Auml;nderungen gepr&uuml;ft werden m&uuml;ssen.<\/p>\n<h2>Datentyp-Mapping<\/h2>\n<p>Eine zweite Einstellung, die man in der Regel f&uuml;r alle Migrationen verwenden m&ouml;chte, die man durchf&uuml;hrt, sind die Zuordnungen der Datentypen der Access- und der SQL Server-Datenbank.<\/p>\n<p>Diese finden wir im Bereich <b>Type Mapping<\/b>. Hier k&ouml;nnen wir f&uuml;r jeden Access-Datentyp festlegen, in welchen Datentyp dieser im SQL Server migriert werden soll. Dies ist beispielsweise beim Datum interessant.<\/p>\n<p>Den neueren Datentyp <b>datetime2(0)<\/b> kann Access nicht ohne Weiteres verwenden &#8211; dazu ist beim Verkn&uuml;pfen der Tabellen eine weitere Anpassung notwendig. Mehr dazu lesen Sie im Beitrag <b>Probleme mit dem Datentyp Datum\/Uhrzeit erweitert <\/b>(<b>www.access-im-unternehmen.de\/1501<\/b>).<\/p>\n<p>Wir k&ouml;nnten in den Einstellungen also direkt festlegen, dass f&uuml;r neue Projekte der Datentyp <b>date <\/b>einer Access-Datenbank in den Datentyp <b>datetime <\/b>im SQL Server migriert wird. Dazu klicken wir doppelt auf die entsprechende Zuordnung und passen diese im Dialog <b>Edit Type Mapping <\/b>an (siehe Bild 23).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_1498_023.png\" alt=\"Einstellen der Standard-Mappings\" width=\"700\" height=\"365,8254\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 23: Einstellen der Standard-Mappings<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Sollten wir nicht allzu viele Fehlermeldungen erhalten, k&ouml;nnen wir die nun zum SQL Server migrierten und mit der Access-Datenbank verkn&uuml;pften Tabellen bereits weitgehend so nutzen, wie dies zuvor mit den lokalen Tabellen der Fall war.<\/p>\n<p>Voraussetzung daf&uuml;r ist allerdings auch, dass das Datenmodell in einem Zustand ist, das eine einfache Migration zum SQL Server erlaubt. Eine wichtige Voraussetzung dabei ist, dass es f&uuml;r jede Tabelle, die anschlie&szlig;end &uuml;ber ODBC von Access aus bearbeitet werden k&ouml;nnen soll, ein Prim&auml;rschl&uuml;sselfeld gibt. Anderenfalls k&ouml;nnen solche Tabellen nicht aktualisiert werden.<\/p>\n<p>Hilfreich ist es auch, wenn es &uuml;berall, wo es sinnvoll ist, Beziehungen zwischen den Tabellen mit referenzieller Integrit&auml;t gibt.<\/p>\n<p>Damit beugen wir allein dem Fall vor, dass es in Fremdschl&uuml;sselfeldern Karteileichen gibt, also Werte, die in den Prim&auml;rschl&uuml;sselfeldern der verkn&uuml;pften Tabellen nicht mehr vorhanden sind, weil diese entweder gel&ouml;scht wurden oder weil die Fremdschl&uuml;sselfelder direkt mit Werten gef&uuml;llt wurden, die in der verkn&uuml;pften Tabelle gar nicht vorhanden waren.<\/p>\n<p>Wenn die Migration der Tabellen erfolgt ist, folgt die weitere Migration. Diese besteht zuerst einmal darin, dass die Anwendung auf die Funktionalit&auml;t mit den per ODBC verkn&uuml;pften Tabellen getestet wird.<\/p>\n<p>Hier d&uuml;rften bereits einige Probleme auftauchen, weil zum Beispiel der Zugriff auf diese Tabellen per VBA mit den Methoden <b>OpenRecordset <\/b>oder <b>Execute <\/b>zu Problemen f&uuml;hrt. Hier sind einige Umstellungen zu erledigen.<\/p>\n<p>Wir werden in loser Folge das Thema Migration weiterhin behandeln.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer schnell die Tabellen einer Access-Datenbank zum SQL Server migrieren m&ouml;chte, kann dazu ein kostenloses Tool von Microsoft nutzen: Den SQL Server Migration Assistant, in diesem Fall in der Ausf&uuml;hrung f&uuml;r Access. Wie wir die Tabelle einer Access-Datenbank zum SQL Server &uuml;bertragen und gleichzeitig auch noch die passenden Verkn&uuml;pfungen f&uuml;r den Zugriff auf diese Datenbank erstellen, zeigen wir in diesem Beitrag.  Dabei nutzen wir die schnellste zur Verf&uuml;gung stehende Methode, n&auml;mlich den Migration Wizard, ein Assistent im Assistenten. Im besten Fall kann man danach direkt von der Access-Datenbank auf die Daten im SQL Server-Backend zugreifen. Gegebenenfalls sind noch Vor- und Nacharbeiten erforderlich, um die k&uuml;mmern wir uns jedoch in eigenen Beitr&auml;gen.<\/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":[662024,66042024,44000022],"tags":[],"class_list":["post-55001498","post","type-post","status-publish","format-standard","hentry","category-662024","category-66042024","category-SQL_Server_und_Co"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Access und SQL Server: Der Migrations-Wizard - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access und SQL Server: Der Migrations-Wizard\" \/>\n<meta property=\"og:description\" content=\"Wer schnell die Tabellen einer Access-Datenbank zum SQL Server migrieren m&ouml;chte, kann dazu ein kostenloses Tool von Microsoft nutzen: Den SQL Server Migration Assistant, in diesem Fall in der Ausf&uuml;hrung f&uuml;r Access. Wie wir die Tabelle einer Access-Datenbank zum SQL Server &uuml;bertragen und gleichzeitig auch noch die passenden Verkn&uuml;pfungen f&uuml;r den Zugriff auf diese Datenbank erstellen, zeigen wir in diesem Beitrag. Dabei nutzen wir die schnellste zur Verf&uuml;gung stehende Methode, n&auml;mlich den Migration Wizard, ein Assistent im Assistenten. Im besten Fall kann man danach direkt von der Access-Datenbank auf die Daten im SQL Server-Backend zugreifen. Gegebenenfalls sind noch Vor- und Nacharbeiten erforderlich, um die k&uuml;mmern wir uns jedoch in eigenen Beitr&auml;gen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-01T09:53:38+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"20\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access und SQL Server: Der Migrations-Wizard\",\"datePublished\":\"2024-08-01T09:53:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/\"},\"wordCount\":3882,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/9f29cc8b78724aea96fa7957687a80a8\",\"articleSection\":[\"2024\",\"4\\\/2024\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/\",\"name\":\"Access und SQL Server: Der Migrations-Wizard - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/9f29cc8b78724aea96fa7957687a80a8\",\"datePublished\":\"2024-08-01T09:53:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/9f29cc8b78724aea96fa7957687a80a8\",\"contentUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/9f29cc8b78724aea96fa7957687a80a8\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_Server_Der_MigrationsWizard\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access und SQL Server: Der Migrations-Wizard\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Access und SQL Server: Der Migrations-Wizard - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/","og_locale":"de_DE","og_type":"article","og_title":"Access und SQL Server: Der Migrations-Wizard","og_description":"Wer schnell die Tabellen einer Access-Datenbank zum SQL Server migrieren m&ouml;chte, kann dazu ein kostenloses Tool von Microsoft nutzen: Den SQL Server Migration Assistant, in diesem Fall in der Ausf&uuml;hrung f&uuml;r Access. Wie wir die Tabelle einer Access-Datenbank zum SQL Server &uuml;bertragen und gleichzeitig auch noch die passenden Verkn&uuml;pfungen f&uuml;r den Zugriff auf diese Datenbank erstellen, zeigen wir in diesem Beitrag. Dabei nutzen wir die schnellste zur Verf&uuml;gung stehende Methode, n&auml;mlich den Migration Wizard, ein Assistent im Assistenten. Im besten Fall kann man danach direkt von der Access-Datenbank auf die Daten im SQL Server-Backend zugreifen. Gegebenenfalls sind noch Vor- und Nacharbeiten erforderlich, um die k&uuml;mmern wir uns jedoch in eigenen Beitr&auml;gen.","og_url":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/","og_site_name":"Access im Unternehmen","article_published_time":"2024-08-01T09:53:38+00:00","og_image":[{"url":"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"20\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access und SQL Server: Der Migrations-Wizard","datePublished":"2024-08-01T09:53:38+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/"},"wordCount":3882,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8","articleSection":["2024","4\/2024","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/","url":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/","name":"Access und SQL Server: Der Migrations-Wizard - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8","datePublished":"2024-08-01T09:53:38+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#primaryimage","url":"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8","contentUrl":"http:\/\/vg02.met.vgwort.de\/na\/9f29cc8b78724aea96fa7957687a80a8"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_Server_Der_MigrationsWizard\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access und SQL Server: Der Migrations-Wizard"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001498"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001498\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}