{"id":55000490,"date":"2007-10-01T00:00:00","date_gmt":"2020-05-06T15:18:47","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=490"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Migration_von_Access_zum_SQL_Server_2005","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/","title":{"rendered":"Migration von Access zum SQL Server 2005"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Migration wird in Wikipedia als &#8222;Umstellung auf neue Technologie, Wandlung von Daten-Formaten, Wechsel grundlegender Software&#8220; beschrieben &#8211; sofern man den Begriff Migration in der Informationstechnologie verwendet. Die soziologische Bedeutung trifft den Punkt besser: Die Daten ziehen um! Im konkreten Fall findet der Umzug von Access nach SQL Server statt. Und wie auch bei einem realen Wohnsitzwechsel kann der Datenumzug ohne Vorbereitung eine chaotische Angelegenheit werden. Daher unterst&uuml;tzen wir Sie: Auf den n&auml;chsten Seiten finden Sie praktische Umzug-Tipps.<\/b><\/p>\n<\/div>\n<div class=\"story\">\n<p>Bei jeder Migration kommt immer wieder die Frage auf &#8222;Warum machen wir das nicht einfach neu&#8220;. Diese Frage ist auch durchaus berechtigt. Wenn schon eine neue Datenbasis, warum nicht auch gleich eine neue Technik einsetzen Weg von den Altlasten und alten Fehlern, die schon jahrelang in der Applikation mitgeschleppt werden, hin zu einer neuen besseren Applikation. Das w&uuml;rde sich ja anbieten, jetzt, da die Datenbasis auf eine neue Plattform migriert werden soll.<\/p>\n<p>Nat&uuml;rlich ist eine Neuentwicklung der Applikation &#8211; am besten mit einer neuen Entwicklungsumgebung wie .NET &#8211; eine gute Investition f&uuml;r die Zukunft. Aber m&ouml;chte man diese Investition &uuml;berhaupt Wie hoch w&auml;re die Investition Und Hand aufs Herz: Eine Neuentwicklung garantiert nicht unbedingt eine fehlerfreie neue Applikation. Erst recht nicht, wenn auch noch eine neue Entwicklungsumgebung genutzt wird.<\/p>\n<p>Prim&auml;r w&auml;ren die Kosten zu pr&uuml;fen. Eine Neuentwicklung kostet nicht nur Entwicklungszeit, sondern es muss auch Zeit und Geld f&uuml;r Schulungen investiert werden. Die Entwickler m&uuml;ssen in die neue Entwicklungsumgebung eingearbeitet werden, die Anwender in die neue Applikation. Denn in den seltensten F&auml;llen sieht die Neuentwicklung sp&auml;ter so aus wie die bestehende Applikation. Nicht nur die Optik wird dabei modernisiert, sondern meist auch der Workflow. Auch die Datenbank wird sich &auml;ndern, was den Aufwand bei der Daten&uuml;bernahme erh&ouml;ht. <\/p>\n<p>Ein weiterer entscheidender Punkt ist die Dauer der Neuentwicklung. Die neue Applikation kann erst nach Abschluss der Entwicklung eingesetzt werden. Die vorhandenen Probleme, die Grund f&uuml;r die &uuml;berlegung &#8222;Neuentwicklung oder Migration&#8220; sind, bleiben also bis zum Ende der Neuentwicklung bestehen, da bis zur Fertigstellung die alte Applikation weiterverwendet werden muss. <\/p>\n<p>Im Gegensatz zur Neuentwicklung ist die Entwicklungszeit bei einer Migration erheblich k&uuml;rzer, da hierbei nur die Access-Datenbank zu einer SQL Server-Datenbank migriert wird. Oberfl&auml;che und Programmlogik bleiben dieselbe, wodurch auch kein Schulungsaufwand entsteht. Der Erfolg einer Migration ist abh&auml;ngig von dem Zustand und der Qualit&auml;t der Access-Applikation. Sie sollten, bevor Sie eine Entscheidung bez&uuml;glich Migration oder Neuentwicklung treffen, zun&auml;chst testweise eine Migration durchf&uuml;hren.<\/p>\n<p>Dieser Beitrag behandelt nur den Punkt der Migration. Denn auch ohne Thin-Clients oder Web-Applikationen mit .NET bietet allein Access schon zwei m&ouml;gliche Frontends, mit denen Daten von SQL Server-Datenbanken verwaltet werden k&ouml;nnen.<\/p>\n<h2>M&ouml;glichkeiten<\/h2>\n<p>Microsoft bietet seit 2000 Access zwei verschiedene Formate an: MDB und ADP. <\/p>\n<p>W&auml;hrend das MDB-Format als klassische Variante mit der Jet-Engine als Datenbank arbeitet, besitzt das ADP-Format (Access Database Project) keine eigene Datenbank-Engine. Das ADP-Format enth&auml;lt lediglich die Formulare, Berichte, Module und Makros &#8211; sprich die Logik &#8211; der Access-Applikation und greift direkt auf den SQL Server mit seinen Tabellen, Sichten, gespeicherten Prozeduren und benutzerdefinierten Funktionen zu. <\/p>\n<p>Die Daten von SQL Server-Tabellen k&ouml;nnen jedoch auch mit einer MDB verwaltet werden. Dazu werden die Tabellen &uuml;ber eine ODBC-Verbindung in die MDB eingebunden und dort von der Jet-Engine &#8222;adoptiert&#8220;. Jeglicher Zugriff auf die SQL Server-Tabellen wird von der Jet-Engine &uuml;bernommen und gesteuert. <\/p>\n<p>Microsoft propagierte f&uuml;r die Konstellation Access\/SQL Server in den letzten Jahren die ADP. <\/p>\n<p>Als Vorteil von ADP wurde der direkte Zugriff auf die SQL Server-Datenbank genannt. Es m&uuml;ssen keine ODBC-Verbindungen konfiguriert beziehungsweise verwaltet werden und es mischt sich keine Jet-Engine bei der Datenverwaltung ein. Auch ADO &#8211; welches als einzige Datenzugriffsbibliothek mit ADP funktioniert, denn DAO wird bei ADP nicht unterst&uuml;tzt &#8211; wurde stark beworben. Das ging sogar so weit, dass in den Verweisen einer neu angelegten Datenbank ADO standardm&auml;&szlig;ig aktiviert war. Wer DAO nutzen wollte, musste es manuell in Gang setzen. Es kamen sogar Ger&uuml;chte auf, dass DAO auslaufen und nicht mehr weiterentwickelt werden w&uuml;rde.<\/p>\n<p>Neue Version, neues Gl&uuml;ck, neue Aussagen: mit der Version Access 2007 macht Microsoft eine gro&szlig;e Rolle r&uuml;ckw&auml;rts und propagiert nun MDB mit &uuml;ber ODBC eingebundenen Tabellen und DAO als die beste Methode, SQL Server-Datenbanken mit Access zu verwalten. <\/p>\n<p>Die Aussagen, warum dies besser sei, sind jedoch etwas zweifelhaft. &#8222;Die Logik geh&ouml;rt in die Access-Applikation.&#8220; Stimmt auch, sofern die Datenbank nur von einer Applikation, n&auml;mlich der Access-Applikation, die die Logik beinhaltet, verwaltet wird. Werden die Daten der Datenbank aber auch von anderen Applikationen &#8211; etwa Web-Applikationen &#8211; verwaltet, ist die Logik in der Datenbank besser aufgehoben. Mal abgesehen davon, dass auch in einer ADP die Logik vorhanden ist. Viel mehr sogar: in einer ADP ist nur die Logik vorhanden.<\/p>\n<p>Ein weiterer Grund soll nun das Datenhandling &uuml;ber die Jet-Engine sein. Gerade der direkte Zugriff ohne Umweg &uuml;ber die Jet-Engine wurde in den letzten Jahren als immenser Vorteil dargestellt und als Grund f&uuml;r den Wechsel auf ADP propagiert. <\/p>\n<p>Die M&ouml;glichkeit, tempor&auml;re Daten in lokalen Tabellen einer MDB zwischenzuspeichern, wird auch als Grund genannt. Dies kann unter Umst&auml;nden schon ein Vorteil sein, aber es ist durchaus auch m&ouml;glich, tempor&auml;re Daten auf dem SQL Server zu speichern.<\/p>\n<p>Ein weitaus wichtigerer &#8211; wenn auch eher verschwiegener &#8211; Grund gegen ADP ist die mangelnde Weiterentwicklung: F&uuml;r SQL Server 2000-Datenbanken stehen in den ADP-Versionen 2000-2003 die entsprechenden Verwaltungstools zum Erstellen von Tabellen, Sichten und gespeicherten Prozeduren zur Verf&uuml;gung. Die Tools sind in diesen Versionen f&uuml;r den SQL Server 2005 nicht mehr nutzbar. Die ADP-Versionen 2000-2003 kommen auch mit dem neuen Security-Konzept des SQL Server 2005 &#8211; speziell mit den Schemata &#8211; nicht zurecht. Erst in Access 2007 stehen die entsprechenden Tools f&uuml;r die neuen Features von SQL Server 2005 zur Verf&uuml;gung und auch die Schemata werden erkannt. Womit der Weg f&uuml;r die ADP wieder frei w&auml;re, g&auml;be es da nicht den Umstand, dass die Neuerungen von Access 2007 eher in die Weiterentwicklung von Jet (ACE) eingeflossen sind und die ADP mehr als stiefm&uuml;tterlich behandelt wird. Diese stiefm&uuml;tterliche Behandlung wird schon dadurch deutlich, dass das ADP-Format in Access 2007 erst einmal gefunden werden muss. Es ist so beil&auml;ufig integriert, dass w&auml;hrend der Betaphase schon das Ger&uuml;cht aufkam, ADP sei tot. An jedem Ger&uuml;cht soll ja ein F&uuml;nkchen Wahrheit sein und man darf gespannt sein, ob und wie lange Microsoft das ADP-Format aufrechterh&auml;lt. <\/p>\n<p>Auf alle F&auml;lle sollten Sie den aktuellen Status der ADP-Entwicklung in Ihre Migrations&uuml;berlegungen mit einbeziehen.<\/p>\n<p>Ob Sie nun aber ADP oder MDB bevorzugen: In beiden F&auml;llen m&uuml;ssen Sie Ihre Datenbank noch pr&uuml;fen und ggf. auf die Migration vorbereiten.<\/p>\n<h2>Vorbereitungen<\/h2>\n<p>Sicherung! Sie sollten &#8211; und das ist ja wohl selbstverst&auml;ndlich &#8211; Ihre Datenbank vor der Migration sichern. Am besten migrieren Sie erst mal nur eine Kopie Ihrer Datenbank.<\/p>\n<p>Sie werden in einigen F&auml;llen feststellen, dass an der Datenbank noch manuelle &auml;nderungen notwendig sind, damit Ihre Access-Applikation mit der migrierten Datenbank arbeiten kann. Eine dieser &auml;nderungen betrifft den Prim&auml;rschl&uuml;ssel. Der Prim&auml;rschl&uuml;ssel spielt eine entscheidende Rolle f&uuml;r die Migration. Daten von SQL Server-Tabellen, die keinen Prim&auml;rschl&uuml;ssel haben, k&ouml;nnen mit Access nicht ge&auml;ndert werden. Dabei ist es unwichtig, ob Sie nun eine ADP oder MDB einsetzen m&ouml;chten. Jede Tabelle muss einen Prim&auml;rschl&uuml;ssel besitzen! Sollten Sie Tabellen ohne Prim&auml;rschl&uuml;ssel in Ihrer Datenbank haben, g&ouml;nnen Sie diesen Tabellen nun einen Prim&auml;rschl&uuml;ssel; ein Autowert reicht v&ouml;llig aus. <\/p>\n<p>Mit dem Prim&auml;rschl&uuml;ssel w&auml;re dann auch schon das gr&ouml;&szlig;te Hindernis genannt. F&uuml;r das Leben und insbesondere f&uuml;r die Weiterentwicklung der Access-Applikation nach der Migration sollten Sie noch wissen, dass Access und SQL Server mit unterschiedlichen Datentypen arbeiten. Erschwerend kommt dazu, dass in beiden Systemen gleiche Bezeichnungen f&uuml;r unterschiedliche Datentypen verwendet werden. Beispielsweise ist ein &#8222;integer&#8220; im SQL Server ein &#8222;longint&#8220; in Access oder &#8222;text&#8220; im SQL Server in Access ein &#8222;memo&#8220;. Nat&uuml;rlich sollten Sie auch &uuml;berlegen, was alles migriert werden soll beziehungsweise muss. F&uuml;r eine ADP m&uuml;ssen alle Tabellen und Abfragen migriert werden, da die ADP selbst weder Tabellen noch Abfragen speichern kann. Die vorhandenen Access-Abfragen werden dabei als Sichten oder gespeicherte Prozeduren exportiert. <\/p>\n<p>Sofern weiterhin mit einer MDB gearbeitet wird, k&ouml;nnen nach Belieben alle oder auch nur einige Tabellen migriert und in die MDB eingebunden werden. Auch die Migration der Abfragen zu Sichten und gespeicherten Prozeduren ist m&ouml;glich, wobei jedoch nur die Sichten direkt in der MDB genutzt werden k&ouml;nnen. Diese Limitation wird die Migration von einigen Abfragen verhindern. Zum Beispiel m&uuml;ssen Abfragen mit Parameterwerten zu gespeicherten Prozeduren konvertiert werden, da Sichten Parameter nicht unterst&uuml;tzen. Aber gespeicherte Prozeduren wiederum k&ouml;nnen nicht direkt wie Tabellen in der MDB verwendet, sondern nur in VBA ausgef&uuml;hrt werden. Die einzige M&ouml;glichkeit, SQL Server-Objekte als Objekte in einer MDB zu nutzen, besteht darin, die SQL Server-Objekte als Tabellen einzubinden. Das ist mit gespeicherten Prozeduren nicht m&ouml;glich, wohl aber mit Sichten: Diese werden als Tabellen in die MDB eingebunden &#8211; wobei wieder der Prim&auml;rschl&uuml;ssel ins Spiel kommt. Beim Einbinden einer Sicht als Tabelle m&uuml;ssen Sie eine Spalte als Prim&auml;rschl&uuml;ssel deklarieren, sonst stehen die Daten lediglich schreibgesch&uuml;tzt zur Verf&uuml;gung.<\/p>\n<p>Sofern Sie die Abfragen mit in Ihren Migrationsplan aufnehmen, m&uuml;ssen Sie auch diese vorab pr&uuml;fen. Abfragen mit Verweisen auf Controls wie <b>Forms!FormName!Control<\/b> oder Abfragen mit VBA-Funktionen wie <b>Format<\/b> k&ouml;nnen nicht migriert werden. Der Grund daf&uuml;r ist recht einfach: der SQL Server kennt weder die Access-Controls noch die VBA-Funktionen, und was der SQL Server nicht kennt, wird auch nicht migriert.<\/p>\n<p>Entweder verzichten Sie auf die Migration dieser Abfragen oder Sie programmieren diese Abfragen als Sichten beziehungsweise gespeicherte Prozeduren. Dazu sind Kenntnisse in T-SQL, der SQL-Syntax des Microsoft SQL Servers, notwendig. Auch die M&ouml;glichkeiten der Sichten und gespeicherten Prozeduren sollten Ihnen bekannt sein, um absch&auml;tzen zu k&ouml;nnen, wann eine Abfrage durch eine Sicht oder eine gespeicherte Prozedur ersetzt werden kann oder muss. <\/p>\n<p>Eine andere Variante w&auml;re, die Notwendigkeit der Abfragen beziehungsweise deren Syntax zu &uuml;berdenken. Bei Abfragen mit VBA-Funktionen etwa sollten Sie pr&uuml;fen, ob diese VBA-Funktionen in der Abfrage zwingend erforderlich sind. Beispielsweise k&ouml;nnte eine <b>Format<\/b>-Funktion auch erst bei der Anzeige beziehungsweise Weiterverarbeitung eingesetzt werden und nicht unbedingt in der Abfrage selbst. Solch &#8222;bereinigte&#8220; Abfragen werden anstandslos migriert.<\/p>\n<p>Eine gut vorbereitete Access-Datenbank wird bei der Migration keine gro&szlig;en Probleme verursachen. Aber wie funktioniert nun eine solche Migration Daf&uuml;r gibt es entsprechende Tools.<\/p>\n<div class=\"abbildung\">\n<table>\n<tbody>\n<tr>\n<td>\n<p class=\"tabellenkopf\">Migration ohne Tools<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sofern Sie nur die Tabellen einer Access-Datenbank migrieren wollen und die Anzahl dieser Tabellen &uuml;berschaubar ist, ist eine manuelle Migration durchaus eine Alternative. Dabei lernen Sie nicht nur das SQL Server Management Studio, sondern auch einige Feinheiten bei der Erstellung von SQL Server-Datenbanken, Tabellen und Indizes kennen. Bei der manuellen Migration legen Sie die Datenbank auf dem SQL Server an sowie anschlie&szlig;end jede einzelne Tabelle mitsamt den Spalten und den entsprechenden Datentypen, so wie sie auch in Ihrer Quelldatenbank vorhanden sind. Erg&auml;nzend k&ouml;nnen Sie dazu noch die G&uuml;ltigkeitsregeln als Check Constraints, die Standardwerte als Default, sowie die jeweiligen Indizes und Fremdschl&uuml;ssel der Tabellen mitsamt den L&ouml;sch- und Aktualisierungsweitergaben festlegen. Nachdem alle Tabellen vollst&auml;ndig auf dem SQL Server erstellt sind, wechseln Sie zur MDB und binden die SQL Server-Tabellen dort &uuml;ber ODBC ein. Anschlie&szlig;end kopieren Sie die Daten jeweils von der lokalen zur eingebundenen Tabelle. Dabei m&uuml;ssen Sie die Beziehungen der Tabellen und die damit verbundene Abh&auml;ngigkeit und Reihenfolge ber&uuml;cksichtigen. Das Ermitteln dieser Reihenfolge kann sich bei Access-Datenbanken mit vielen Beziehungen zu einer ausgepr&auml;gten Geduldsprobe entwickeln. Um sich die Arbeit etwas zu erleichtern, nutzen Sie den Datenbank-Dokumentator von Access, den Sie unter <b>Datenbank\/Dienstprogramme <\/b>finden. Dieser liefert eine ausf&uuml;hrliche &uuml;bersicht der Tabellen und ihrer Abh&auml;ngigkeiten. <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h2>Migration mit dem Upsizing-Assistenten<\/h2>\n<p><!--30percent--><\/p>\n<p>Seit Access 2000 scheint Microsoft bei jeder Access-Version damit zu rechnen beziehungsweise zu hoffen, dass die damit erstellten Datenbanken irgendwann einmal zu SQL Server-Datenbanken migriert werden. Denn seit Access 2000 ist immer ein Upsizing-Assistent dabei; f&uuml;r Access 97 wurde er noch schnell als Download nachgereicht.<\/p>\n<p>Auch in der neuesten Version &#8211; in Access 2007 &#8211; ist der Upsizing-Assistent enthalten. Wie in den vorherigen Versionen auch kann mit dem Assistenten eine ADP erstellt oder eine bestehende MDB ver&auml;ndert werden. Im Assistenten wird definiert, auf welchen SQL Server mit welcher Anmeldung die Tabellen mit Indizes, Beziehungen und Daten migriert werden. Doch der Reihe nach &#8211; und zwar Schritt f&uuml;r Schritt &#8211; und das mit der Nordwind-Datenbank. <\/p>\n<p>Im folgenden Beispiel wird beschrieben, wie die Nordwind-Datenbank aus Access 2007 mit dem Upsizing-Assistenten migriert wird. Sie k&ouml;nnen auch Access 2003 daf&uuml;r verwenden. Der Upsizing-Assistent hat sich nicht ver&auml;ndert.<\/p>\n<p>&ouml;ffnen Sie die Nordwind-Datenbank und starten Sie den Upsizing-Assistenten. Sie finden ihn in Access 2007 in der Multifunktionsleiste unter <b>Datenbanktools\/Daten verschieben\/SQL Server<\/b>; in Access 2003 findet er sich im Men&uuml; <b>Extras\/Datenbank-Dienstprogramme\/Upsizing-Assistent<\/b>.<\/p>\n<p>Der erste Dialog des Upsizing-Assistenten verlangt von Ihnen die Entscheidung, ob die Tabellen der ge&ouml;ffneten Datenbank in eine neue oder in eine bestehende SQL Server-Datenbank migriert werden sollen. <\/p>\n<p>Die Migration der Tabellen in eine bestehende SQL Server-Datenbank ist n&uuml;tzlich, wenn Sie umfangreiche Access-Applikationen migrieren und dabei den Migrationsprozess in mehrere Schritte aufteilen m&ouml;chten. Im ersten Schritt erstellen Sie eine neue Datenbank und in den darauf folgenden Schritten verbinden Sie sich mit dieser. F&uuml;r diese Verbindung wird eine entsprechende ODBC-Verbindung ben&ouml;tigt.<\/p>\n<p>In diesem Beispiel soll eine neue Datenbank erstellt werden. Insofern k&ouml;nnen Sie die Vorauswahl beibehalten und auf <b>Weiter <\/b>klicken.<\/p>\n<p>Die Auswahl des SQL Servers, auf dem die Datenbank erstellt werden soll, sowie die dazu notwendige Anmeldung und der Name der neuen Datenbank sind Inhalt des n&auml;chsten Dialogs (siehe Bild 1).<\/p>\n<div class=\"abbildung\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic001_opt.jpeg\" alt=\"pic001.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 1: Die neue Adresse der Datenbank<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Als Anmeldem&ouml;glichkeiten stehen die bekannte &#8222;vertrauensw&uuml;rdige Verbindung&#8220; &#8211; also die Windows-Authentifizierung &#8211; und eine Anmeldung mit Benutzername und Kennwort &#8211; die SQL Server-Authentifizierung &#8211; zur Verf&uuml;gung. Wenn Sie die SQL Server-Authentifizierung nutzen, sollten Sie bedenken, dass der eingegebene Benutzername auf dem SQL Server existieren und dort auch &uuml;ber die entsprechenden Rechte zur Anlage einer Datenbank verf&uuml;gen muss. Nat&uuml;rlich muss auch das Kennwort dort mit dem hier eingegebenen Kennwort &uuml;bereinstimmen.<\/p>\n<p>Den bereits vorgegebenen Datenbanknamen k&ouml;nnen Sie nach Belieben &auml;ndern. Mit einem Klick auf <b>Weiter <\/b>wird die Datenbank angelegt und der n&auml;chste Dialog (siehe Bild 2) ge&ouml;ffnet. Hier w&auml;hlen Sie die Tabellen aus, die migriert werden sollen. Eine Auswahl der Abfragen gibt es nicht. Sofern Sie eine ADP durch den Assistenten erstellen lassen, werden die Abfragen automatisch migriert.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic002_opt.jpeg\" alt=\"pic002.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 2: Auswahl der Tabellen<\/span><\/b><\/p>\n<\/p><\/div>\n<p>F&uuml;r die Migration der Nordwind-Datenbank w&auml;hlen Sie alle Tabellen aus. Anschlie&szlig;end &ouml;ffnen Sie den n&auml;chsten Dialog mit einem Klick auf <b>Weiter<\/b>.<\/p>\n<p>Der vierte Dialog (siehe Bild 3) des Upsizing-Assistenten erm&ouml;glicht die Konfiguration der Tabellenattribute und der &uuml;bernahme der Daten. Als konfigurierbare Tabellenattribute stehen Indizes, Standardwerte und G&uuml;ltigkeitsregeln zur Verf&uuml;gung. Durch Aktivierung der einzelnen Optionen werden die Access-Indizes als SQL Server-Indizes, die Standardwerte als Defaults und die G&uuml;ltigkeitsregeln als Check-Contraints konvertiert &#8211; sofern die in Access verwendete Syntax vom SQL Server verstanden wird.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic003_opt.jpeg\" alt=\"pic003.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 3: Tabellenattribute und Datenoptionen<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Die Tabellenbeziehungen mitsamt den Aktualisierungs- und L&ouml;schweitergaben werden durch die gleichnamige Option aktiviert. Sie m&uuml;ssen sich jedoch entscheiden, ob die Beziehungen im SQL Server &uuml;ber DRI oder &uuml;ber Trigger dargestellt werden sollen. In beiden F&auml;llen werden die Tabellenbeziehungen &uuml;ber Foreign Keys abgebildet. F&uuml;r die Aktualisierungs- und L&ouml;schweitergaben gibt es jedoch zwei M&ouml;glichkeiten: Mit <b>DRI<\/b> wird die Aktualisierungs- und L&ouml;schweitergabe in den Foreign Keys selbst aktiviert, w&auml;hrend bei der Option <b>Mit Trigger<\/b> f&uuml;r Aktualisierungs- und L&ouml;schweitergaben neue Trigger auf dem Server erstellt werden. <\/p>\n<p><b>DRI <\/b>ist f&uuml;r die einfache Abbildung der Aktualisierungs- und L&ouml;schweitergabe absolut ausreichend und auch der aus Access bekannten am n&auml;chsten. Die Variante der Trigger bietet den Vorteil, dass der Code der jeweiligen Aktualisierungs- und L&ouml;schweitergaben jederzeit erweitert werden kann.<\/p>\n<p>Im Bereich <b>Datenoptionen <\/b>steht noch ein f&uuml;r die Migration entscheidendes Kriterium zur Auswahl: Die Erweiterung der Tabellen durch ein Timestamp-Feld. Dies ist nicht unbedeutend, da eine Timestamp-Spalte in manchen Tabellen f&uuml;r ein schnelleres Update der Datens&auml;tze sorgt.<\/p>\n<p>Denn bei einem Update eines Datensatzes ohne Timestamp-Spalte werden der Prim&auml;rschl&uuml;ssel und die Daten jeder Spalte des angezeigten Datensatzes mit dem Prim&auml;rschl&uuml;ssel und den Daten jeder Spalte des gespeicherten Datensatzes verglichen. Bei unterschiedlichen Daten sieht der SQL Server das Kriterium als erf&uuml;llt an, geht also von einer Daten&auml;nderung aus, und f&uuml;hrt das Update durch.<\/p>\n<p>Access arbeitet mit anderen Datentypen beziehungsweise mit anderen Genauigkeiten, wodurch die angezeigten Werte sich bei einigen Datentypen immer von den gespeicherten Werten unterscheiden. Dadurch kommt es h&auml;ufig zu Updates, obwohl eigentlich keine wirkliche Daten&auml;nderung stattgefunden hat.<\/p>\n<p>Um dies zu vermeiden, sollte eine Spalte vom Typ <b>Timestamp <\/b>in den Datensatz aufgenommen werden. Hier wird nicht &#8211; wie der Name vielleicht suggeriert &#8211; ein Zeitpunkt festgehalten, sondern ein bin&auml;rer Wert, der den Zustand des Datensatzes beschreibt. Beim Update werden jetzt nur noch der Prim&auml;rschl&uuml;ssel und der Wert der <b>Timestamp<\/b>-Spalte verglichen. Nur wenn sich der Wert der <b>Timestamp<\/b>-Spalte ver&auml;ndert hat, wird das Update ausgef&uuml;hrt.<\/p>\n<p>Die Option bietet drei M&ouml;glichkeiten, von denen standardm&auml;&szlig;ig <b>Ja &#8211; der Assistent soll entscheiden <\/b>markiert ist. Diese Option ist auch sinnvoll, da der Assistent nun pr&uuml;ft, ob f&uuml;r die jeweilige Tabelle eine <b>Timestamp<\/b>-Spalte notwendig ist. In der Regel sind dies Tabellen, die Spalten vom Datentyp <b>Single<\/b>, <b>Double<\/b>, <b>Memo<\/b> oder <b>OLE-Objekt<\/b> enthalten.<\/p>\n<p>Sofern Sie nur die Struktur der Tabellen, aber keine Daten migrieren m&ouml;chten, m&uuml;ssen Sie lediglich die Option <b>Nur Tabellenstruktur erstellen, keine Daten <\/b>aktivieren. Nachdem Sie die Tabellenattribute und Daten&uuml;bernahme konfiguriert haben, k&ouml;nnen Sie mit <b>Weiter <\/b>zum n&auml;chsten Dialog (siehe Bild 4) wechseln.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic004_opt.jpeg\" alt=\"pic004.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 4: Auswahl ADP oder MDB<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Hier haben Sie die M&ouml;glichkeit zu entscheiden, ob aus der Access-Applikation eine ADP erstellt wird oder ob die neuen SQL Server-Tabellen in die bestehende MDB eingebunden werden sollen. Es ist auch m&ouml;glich, nur die Migration der Tabellen auszuf&uuml;hren und die ge&ouml;ffnete Access-Applikation nicht zu ver&auml;ndern. Die Auswahl ist entscheidend f&uuml;r den Umfang der Migration. Nur bei der Migration zu einer ADP werden auch die Abfragen zu Sichten beziehungsweise gespeicherten Prozeduren migriert. Die zweite und dritte Option migriert nur die ausgew&auml;hlten Tabellen. W&auml;hlen Sie f&uuml;r dieses Beispiel die erste Option, um auch die Abfragen testweise zu migrieren.<\/p>\n<p>Durch Aktivieren der Option <b>Kennwort und Benutzer-ID speichern <\/b>wird die Anmeldung an der SQL Server-Datenbank in Zukunft automatisiert. Das Kennwort wird bei einer MDB in den Access-Systemtabellen gespeichert, w&auml;hrend die ADP &#8211; aus Mangel an eigenen Tabellen &#8211; die Anmeldung lesbar in einer Datei speichert. Sie haben richtig gelesen: Die angegebene Benutzeranmeldung wird im Klartext hinterlegt!<\/p>\n<p>Um dies zu vermeiden, bleibt Ihnen nur die <b>Vertraute Verbindung<\/b>. Oder Sie verzichten auf die automatische Anmeldung und muten dem Anwender zu, dass er sich bei jedem Start der Applikation an der SQL Server-Datenbank anmelden muss. <\/p>\n<p>Mit einem Klick auf <b>Weiter <\/b>gelangen Sie zum letzten Dialog des Assistenten. Hier bestimmen Sie, ob die neu erstellte ADP nach der Migration ge&ouml;ffnet werden soll oder ob Sie mit der ge&ouml;ffneten Access-Datenbank weiterarbeiten m&ouml;chten. Sofern Sie keine ADP erstellen wollen, sehen Sie einen leeren Dialog, der nur die Schaltfl&auml;che <b>Fertig stellen <\/b>zum Starten der Migration bietet. <\/p>\n<p>W&auml;hrend des Migrationsprozesses werden Sie informiert, welche Tabelle gerade migriert wird. Am Ende der Migration erhalten Sie einen Migrationsbericht, den Sie unbedingt speichern sollten. Dort sind alle migrierten und nicht migrierten Tabellen und Abfragen mit den entsprechenden Warnungen und Fehlern protokolliert. Anhand dieses Berichts k&ouml;nnen Sie beurteilen, ob Ihre Migration ein Erfolg war beziehungsweise die Gr&uuml;nde f&uuml;r aufgetretene Fehler einsehen.<\/p>\n<p>Wie bereits kurz angesprochen, werden die Abfragen nur bei der Erstellung einer ADP migriert. Mit einem kleinen Trick k&ouml;nnen Sie auch die Abfragen migrieren lassen, ohne sp&auml;ter mit einer ADP arbeiten zu m&uuml;ssen:<\/p>\n<p>Nachdem der Upsizing-Assistent die Migration beendet und die Tabellen in die MDB eingebunden hat, starten Sie die Migration mit denselben Einstellungen nochmals. Sie m&uuml;ssen sich nun nur mit der bereits bestehenden Datenbank verbinden und im vorletzten Dialog des Assistenten die Option <b>Eine neue Access-Client\/Server-Anwendung erstellen <\/b>aktivieren.<\/p>\n<p>Nun werden lediglich die Objekte migriert, die noch nicht in der SQL Server-Datenbank vorhanden sind. Das bedeutet: die ausgew&auml;hlten Tabellen werden nicht migriert, daf&uuml;r aber die Abfragen. Der Migrationsbericht zeigt Ihnen anschlie&szlig;end detailliert, welche Abfragen migriert werden konnten und welche aus angegebenen Gr&uuml;nden nicht.<\/p>\n<p>Der Clou: Die bei diesem Vorgang erstellte ADP kann nach dem Migrationsprozess wieder gel&ouml;scht werden. <\/p>\n<p>Es gibt noch eine weitere, elegantere Alternative, um die Abfragen &#8211; und nat&uuml;rlich auch die Tabellen &#8211; zu migrieren: den SQL Server Migrations-Assistenten f&uuml;r Access.<\/p>\n<h2>Migration mit dem SSMA<\/h2>\n<p>Unabh&auml;ngig von den Upsizing-Assistenten bietet Microsoft seit dem SQL Server 2005 nun auch den SQL Server Migrations-Assistenten &#8211; kurz SSMA &#8211; f&uuml;r Access als allein stehende Anwendung an. Der SSMA kann unter <b>http:\/\/www.microsoft<br \/>.com\/downloads\/details.aspxfamilyid=d842<br \/>f8b4-c914-4ac7-b2f3-d25fff4e24fb&amp;dis<br \/>playlang=en <\/b>kostenfrei heruntergeladen werden. Nach der Installation m&uuml;ssen Sie den SSMA noch lizenzieren. Auch die Lizenzierung ist kostenfrei.<\/p>\n<p>Der SSMA macht im Grunde genommen nichts anderes, als die in Access verf&uuml;gbaren Upsizing-Assistenten. Nur wird dabei ein anderer Ansatz verfolgt: W&auml;hrend der Upsizing-Assistent die Tabellen einer Access-Applikation komplett in einem Rutsch migriert, kann beim SSMA jeder Schritt einer Migration einzeln durchgef&uuml;hrt und dokumentiert werden.<\/p>\n<p>Dieser Ansatz ist bedingt durch den eigentlichen Ursprung des SSMA, denn es gibt den SSMA f&uuml;r Oracle, den SSMA f&uuml;r Sybase und halt auch den SSMA f&uuml;r Access. F&uuml;r die Migration gro&szlig;er Datenbankserver wie Oracle und Sybase ist die M&ouml;glichkeit einer sukzessiven Migration sehr sinnvoll.<\/p>\n<p>Der Fokus der Migration liegt beim SSMA auf den Tabellen, Abfragen und Daten. Im Gegensatz zum Upsizing-Assistenten wird dabei die Applikation &#8211; also Formulare, Berichte, Code &#8211; nicht ber&uuml;cksichtigt, d. h. die automatische Erzeugung einer ADP ist nicht m&ouml;glich. Daf&uuml;r werden die Abfragen im SSMA nicht stiefm&uuml;tterlich behandelt, sondern k&ouml;nnen wie die Tabellen f&uuml;r die Migration einzeln ausgew&auml;hlt werden. <\/p>\n<p>Doch jetzt zur Migration im Einzelnen. Wieder soll die Nordwind-Datenbank migriert werden und dazu starten Sie den SSMA.<\/p>\n<p>Als Erstes sehen Sie den Migration-Wizard mit einer &uuml;bersicht, welche Aktionen nun durchgef&uuml;hrt werden. Der Wizard ist f&uuml;r einfache und schnelle Migrationen ausreichend, aber er versteckt einige interessante Optionen. Um diese Optionen kennen zu lernen, zeigt dieses Beispiel die Migration der Nordwind-Datenbank ohne Wizard. Dazu m&uuml;ssen Sie erst den Wizard schlie&szlig;en. <\/p>\n<p>So ganz ohne Unterst&uuml;tzung legen Sie nun also zun&auml;chst &uuml;ber <b>File\/New Project <\/b>ein neues Projekt an. Mit diesem Projekt sind Sie in der Lage, den jeweiligen Migrationsstand zu speichern und jederzeit wieder fortzusetzen. <\/p>\n<p>Im Dialog <b>New Project <\/b>(siehe Bild 5) bestimmen Sie Speicherort und Name f&uuml;r dieses Migrationsprojekt.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic005_opt.jpeg\" alt=\"pic005.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 5: Ein neues Migrationsprojekt<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Als N&auml;chstes m&uuml;ssen Sie die zu migrierende Access-Datenbank in das Projekt laden. Mit dem Men&uuml;befehl <b>Find Databases <\/b>k&ouml;nnen Sie mehrere Datenbanken suchen lassen und in das Projekt aufnehmen. Es ist m&ouml;glich, mehrere Datenbanken in einem Projekt zu migrieren. <\/p>\n<p>F&uuml;r dieses Beispiel reicht die Nordwind-Datenbank, die Sie direkt mit dem Men&uuml;befehl <b>Add Databases <\/b>in das Projekt laden k&ouml;nnen. Anschlie&szlig;end werden die Metadaten, also das Schema, der Datenbank ausgelesen und in einer Baumansicht dargestellt.<\/p>\n<p>Auf Ebene des Knoten <b>Tabellen <\/b>sehen Sie auf der rechten H&auml;lfte des SSMA eine Mapping-Tabelle (siehe Bild 6), die die Konvertierung der Datentypen aus Access nach SQL Server darstellt.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic006_opt.jpeg\" alt=\"pic006.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 6: Mapping-Tabelle<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Sie k&ouml;nnen eine Tabelle mit eigenen Konvertierungen erweitern oder bestehende Konvertierungen &auml;ndern. <\/p>\n<p>Die Mapping-Tabelle kann auch in den Projekt-Optionen &uuml;ber <b>Tools\/Projekt Settings <\/b>konfiguriert werden. Dort stehen auch viele weitere n&uuml;tzliche Optionen, wie die Erg&auml;nzung von <b>Timestamp<\/b>-Feldern, die automatische Erg&auml;nzung von Prim&auml;rschl&uuml;sseln bei Tabellen ohne Prim&auml;rschl&uuml;ssel sowie die Einstufung bestimmter Ereignisse als Fehler oder Warnungen zur Verf&uuml;gung.<\/p>\n<p>Auch die Datenmigration bietet verschiedene Optionen. Sie k&ouml;nnen etwa angeben, ob und wie fehlerhafte Datumsangaben korrigiert werden oder ob die Daten ohne Check-Constraints und Trigger auf Seiten der Zieltabellen migriert werden sollen.<\/p>\n<p>Zur Fortsetzung der Migration ben&ouml;tigen Sie eine Verbindung zum SQL Server, die Sie &uuml;ber den Men&uuml;befehl <b>Connect to SQL Server <\/b>konfigurieren. <\/p>\n<p>Sofern eine neue Datenbank erstellt werden soll, m&uuml;ssen Sie lediglich den neuen Namen der Datenbank in das Feld <b>Database <\/b>eintragen. Dies hat eine Abfrage zur Folge, mit der Sie die Anlage der neuen Datenbank best&auml;tigen. <\/p>\n<p>Nun sind die Grundsteine gelegt: Die Quelle und das Ziel sind bekannt (siehe Bild 7).<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic007_opt.jpeg\" alt=\"pic007.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 7: Quelle und Ziel der Migration<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Bevor Sie jetzt mit der eigentlichen Migration beginnen, gibt es die M&ouml;glichkeit, die Migration zu simulieren. Die Ergebnisse der Simulation werden in einem interaktiven Bericht zusammengefasst. Dadurch haben Sie Gelegenheit, die Access-Datenbank f&uuml;r die Migration anzupassen, bevor auch nur ein Objekt tats&auml;chlich auf den SQL Server migriert wurde. <\/p>\n<p>Markieren Sie die Nordwind-Datenbank im Baum <b>Access-Metadata <\/b>und klicken Sie auf den Men&uuml;befehl <b>Create Report<\/b>. Sie erhalten einen ausf&uuml;hrlichen interaktiven Bericht (siehe Bild 8), der umfassende Beschreibungen der Fehler und Warnungen, sowie der migrierbaren Objekte enth&auml;lt.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic008_opt.jpeg\" alt=\"pic008.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 8: <br \/>Bericht der Migration<\/span><\/b><\/p>\n<\/p><\/div>\n<p>F&uuml;r die wirkliche Migration m&uuml;ssen Sie zun&auml;chst ein Schema anhand der Access-Objekte erstellen lassen, dieses auf den SQL Server &uuml;bertragen und anschlie&szlig;end die Daten migrieren. <\/p>\n<p>Dazu starten Sie die einzelnen Schritte mit den Befehlen <b>Convert Schema<\/b>, <b>Load to Database <\/b>und <b>Migrate Data <\/b>aus der Men&uuml;leiste.<\/p>\n<p><b>Convert Schema <\/b>konvertiert das Schema der Access-Datenbank in ein Schema f&uuml;r die SQL Server-Datenbank. Im Ausgabefenster sehen Sie die entsprechenden Ergebnisse, Fehler und Warnungen.<\/p>\n<p>Die konvertierten Objekte werden aber noch nicht auf dem SQL Server angelegt. Dazu m&uuml;ssen Sie zun&auml;chst das Schema des SQL Servers markieren und im Men&uuml; <b>Load to Database <\/b>anklicken. Erst jetzt wird das erstellte Schema auf die SQL Server-Datenbank angewendet und die Tabellen und Abfragen werden erstellt. <\/p>\n<p>Der letzte Schritt ist die Migration der Daten, die Sie per <b>Migrate Data <\/b>starten. Damit die Schaltfl&auml;che aktiv ist, m&uuml;ssen Sie die Datenbank Nordwind im Baum <b>Access-Metadata <\/b>markieren.<\/p>\n<p>Sie k&ouml;nnen diese drei Aktionen auch direkt in einem Rutsch per <b>Convert<\/b>, <b>Load <\/b>and <b>Migrate <\/b>ausf&uuml;hren lassen. Unabh&auml;ngig davon, ob Sie die Schritte nun einzeln oder zusammen ausf&uuml;hren, ist das Ausgabe-Fenster immer eine gute Hilfe, um die Fehler und Warnungen jeder Aktion direkt lokalisieren zu k&ouml;nnen. <\/p>\n<p>Mit einem Doppelklick auf eine Meldung wechseln Sie direkt zum nicht migrierten Objekt. Im oberen Bereich des SSMA sehen Sie dann den SQL-Code des Access-Objekts (DDL Anweisungen) und im unteren den SQL-Code des SQL Server-Objekts (siehe Bild 9).<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/MigrationVonAccessZumSQLServer-web-images\/pic009_opt.jpeg\" alt=\"pic009.TIF\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 9: <br \/>Gegen&uuml;berstellung der SQL-Codes<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Anhand der unterschiedlichen Codes k&ouml;nnen Sie nun ermitteln, warum das Objekt nicht migriert wurde.<\/p>\n<p>Diese Darstellung funktioniert nat&uuml;rlich auch bei den fehlerfrei migrierten Objekten. Dort sehen Sie dann, wie der SQL-Code der Access-Objekte auf dem SQL Server umgesetzt wurde.<\/p>\n<p>Die Objekte, die nicht migriert werden konnten, sind auch ohne das Ausgabe-Fenster zu erkennen. Sie sind in der Baumansicht der Access-Objekte mit einem roten Symbol gekennzeichnet. F&uuml;r jedes einzelne Objekt &#8211; egal ob migriert oder fehlerhaft &#8211; steht ein eigener Bericht zur Verf&uuml;gung. Sie m&uuml;ssen nur das Objekt markieren und auf den Men&uuml;befehl <b>Create Report <\/b>klicken. Als Ergebnis erhalten Sie einen ausf&uuml;hrlichen interaktiven Bericht &uuml;ber die Migration des Objekts.<\/p>\n<p>Der Vorteil von SSMA: Sie k&ouml;nnen die Migration an jedem Punkt stoppen und beenden &#8211; und bei Gelegenheit das Projekt wieder &ouml;ffnen und die Migration fortsetzen. <\/p>\n<p>Die Aufteilung der einzelnen Migrationsschritte, die Vielzahl der Konfigurationsm&ouml;glichkeiten und insbesondere die ausf&uuml;hrliche Berichterstellung lassen den Upsizing-Assistenten von Access neben dem SSMA etwas verblassen. Der Upsizing-Assistent wird immer komplett ausgef&uuml;hrt; eine Aufteilung in einzelne Schritte wie Schemaerstellung und Datenmigration ist nicht m&ouml;glich. <\/p>\n<p>Dagegen bietet der Upsizing-Assistent immer noch die M&ouml;glichkeit, nach der Migration die Access-Applikation zu &auml;ndern. Die Tabellen k&ouml;nnen entweder direkt in die MDB verlinkt oder es kann eine ADP erzeugt werden.<\/p>\n<p>Einen Teil dieser Anforderungen kann auch der SSMA abdecken: &uuml;ber das Kontextmen&uuml; des Knotens <b>Tabellen <\/b>in der Baumansicht <b>Access-Metadaten <\/b>stehen Ihnen die Befehle <b>Link <\/b>und <b>Unlink <\/b>zur Verf&uuml;gung, mit denen Sie die SQL Server-Tabellen in die MDB verkn&uuml;pfen beziehungsweise bestehende Verkn&uuml;pfungen wieder l&ouml;schen k&ouml;nnen. <\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Eine Migration macht noch keine Datenbank-Applikation, egal ob die Migration von Hand, durch den Upsizing-Assistenten oder durch den SSMA ausgef&uuml;hrt wurde. Es wurden dabei lediglich Access-Tabellen zu SQL Server-Tabellen migriert und die Daten &uuml;bernommen; im besten Fall wurden sogar einige Abfragen zu Sichten beziehungsweise gespeicherten Prozeduren migriert. <\/p>\n<p>Das hei&szlig;t jedoch nicht, dass die Tabellen beziehungsweise Abfragen 1:1 umgesetzt wurden. Die Tabellen des SQL Servers unterscheiden sich in den genutzten Datentypen von den Access-Tabellen und bestimmte Tabellenattribute wurden eventuell nicht oder in einer anderen Form umgesetzt. Bei den Abfragen wird der Unterschied am deutlichsten. Nur die einfachsten Abfragen werden migriert und sind zudem noch oft in ver&auml;nderter Form wiederzufinden. Die Datenmigration allein ist also kein Garant daf&uuml;r, dass die migrierte Datenbank-Applikation nun schneller als die alte Access-Applikation l&auml;uft. In manchen F&auml;llen ist die neue Applikation sogar langsamer. <\/p>\n<p>Welche &auml;nderungen bei den Tabellen und Abfragen vorgenommen werden, warum einige Objekte nicht migriert werden k&ouml;nnen und wie Sie diese trotzdem auf den SQL Server bekommen, sowie Informationen &uuml;ber die Optimierung Ihrer migrierten Access-Applikation f&uuml;r die Welt der Datenbankserver lesen Sie in einer der folgenden Ausgaben von <b>Access im Unternehmen<\/b>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Migration wird in Wikipedia als &#8222;Umstellung auf neue Technologie, Wandlung von Daten-Formaten, Wechsel grundlegender Software&#8220; beschrieben &#8211; sofern man den Begriff Migration in der Informationstechnologie verwendet. Die soziologische Bedeutung trifft den Punkt besser: Die Daten ziehen um! Im konkreten Fall findet der Umzug von Access nach SQL Server statt. Und wie auch bei einem realen Wohnsitzwechsel kann der Datenumzug ohne Vorbereitung eine chaotische Angelegenheit werden. Daher unterst&uuml;tzen wir Sie: Auf den n&auml;chsten Seiten finden Sie praktische Umzug-Tipps.<\/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":[662007,66052007,44000029,44000022],"tags":[],"class_list":["post-55000490","post","type-post","status-publish","format-standard","hentry","category-662007","category-66052007","category-Abfragetechnik_und_SQL","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>Migration von Access zum SQL Server 2005 - 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\/Migration_von_Access_zum_SQL_Server_2005\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migration von Access zum SQL Server 2005\" \/>\n<meta property=\"og:description\" content=\"Migration wird in Wikipedia als &quot;Umstellung auf neue Technologie, Wandlung von Daten-Formaten, Wechsel grundlegender Software&quot; beschrieben - sofern man den Begriff Migration in der Informationstechnologie verwendet. Die soziologische Bedeutung trifft den Punkt besser: Die Daten ziehen um! Im konkreten Fall findet der Umzug von Access nach SQL Server statt. Und wie auch bei einem realen Wohnsitzwechsel kann der Datenumzug ohne Vorbereitung eine chaotische Angelegenheit werden. Daher unterst&uuml;tzen wir Sie: Auf den n&auml;chsten Seiten finden Sie praktische Umzug-Tipps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:47+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727\" \/>\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=\"27\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Migration von Access zum SQL Server 2005\",\"datePublished\":\"2020-05-06T15:18:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/\"},\"wordCount\":5362,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/549c9cdc10ac4da4b3105d83b5f6a727\",\"articleSection\":[\"2007\",\"5\\\/2007\",\"Abfragetechnik und SQL\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/\",\"name\":\"Migration von Access zum SQL Server 2005 - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/549c9cdc10ac4da4b3105d83b5f6a727\",\"datePublished\":\"2020-05-06T15:18:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/549c9cdc10ac4da4b3105d83b5f6a727\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/549c9cdc10ac4da4b3105d83b5f6a727\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Migration_von_Access_zum_SQL_Server_2005\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migration von Access zum SQL Server 2005\"}]},{\"@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":"Migration von Access zum SQL Server 2005 - 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\/Migration_von_Access_zum_SQL_Server_2005\/","og_locale":"de_DE","og_type":"article","og_title":"Migration von Access zum SQL Server 2005","og_description":"Migration wird in Wikipedia als \"Umstellung auf neue Technologie, Wandlung von Daten-Formaten, Wechsel grundlegender Software\" beschrieben - sofern man den Begriff Migration in der Informationstechnologie verwendet. Die soziologische Bedeutung trifft den Punkt besser: Die Daten ziehen um! Im konkreten Fall findet der Umzug von Access nach SQL Server statt. Und wie auch bei einem realen Wohnsitzwechsel kann der Datenumzug ohne Vorbereitung eine chaotische Angelegenheit werden. Daher unterst&uuml;tzen wir Sie: Auf den n&auml;chsten Seiten finden Sie praktische Umzug-Tipps.","og_url":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:47+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"27\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Migration von Access zum SQL Server 2005","datePublished":"2020-05-06T15:18:47+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/"},"wordCount":5362,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727","articleSection":["2007","5\/2007","Abfragetechnik und SQL","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/","url":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/","name":"Migration von Access zum SQL Server 2005 - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727","datePublished":"2020-05-06T15:18:47+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/549c9cdc10ac4da4b3105d83b5f6a727"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Migration_von_Access_zum_SQL_Server_2005\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Migration von Access zum SQL Server 2005"}]},{"@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\/55000490","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=55000490"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000490\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}