Migrieren einer Access-Datenbank zu SQL Server

Hinweis: Wir möchten Ihnen die aktuellsten Hilfeinhalte so schnell wie möglich in Ihrer eigenen Sprache bereitstellen. Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Teilen Sie uns bitte über den Link am unteren Rand dieser Seite mit, ob die Informationen für Sie hilfreich sind. Hier finden Sie den englischen Artikel als Referenz.

Wir haben alle Grenzwerte, und eine Access-Datenbank stellt keine Ausnahme dar. Eine Access-Datenbank hat beispielsweise eine Größenbeschränkung von 2 GB und kann nicht mehr als 255 gleichzeitige Benutzer unterstützen. Wenn die Access-Datenbank also zum nächsten Level wechseln soll, können Sie zu SQL Server migrieren. SQL Server (lokal oder in der Azure-Cloud) unterstützt größere Datenmengen, mehr gleichzeitige Benutzer und eine höhere Kapazität als das JET/ACE-Datenbankmodul. Mit diesem Leitfaden erhalten Sie einen reibungslosen Einstieg in Ihre SQL Server-Reise, helfen Ihnen bei der Erstellung von Access-Front-End-Lösungen und hoffen, dass Sie Access für zukünftige Datenbanklösungen verwenden können. Der Upsizing-Assistent wurde aus Access in Access 2013 entfernt, sodass Sie jetzt den Microsoft SQL Server-Migrations-Assistenten (SSMA) verwenden können. Führen Sie die folgenden Schritte aus, um erfolgreich zu migrieren.

Die Phasen der Datenbankmigration zu SQL Server

Vorbereitende Schritte

In den folgenden Abschnitten finden Sie Hintergrundinformationen und weitere Unterstützung für die ersten Schritte.

Informationen zu geteilten Datenbanken

Alle Access-Datenbankobjekte können entweder in einer Datenbankdatei vorhanden sein, oder Sie können in zwei Datenbankdateien gespeichert werden: einer Front-End-Datenbank und einer Back-End-Datenbank. Dies wird als Aufteilung der Datenbank bezeichnet und soll die Freigabe in einer Netzwerkumgebung vereinfachen. Die Back-End-Datenbankdatei darf nur Tabellen und Beziehungen enthalten. Die Front-End-Datei darf nur alle anderen Objekte enthalten, einschließlich Formularen, Berichten, Abfragen, Makros, VBA-Modulen und verknüpften Tabellen in der Back-End-Datenbank. Wenn Sie eine Access-Datenbank migrieren, ähnelt dies einer geteilten Datenbank, in der SQL Server als neues Back-End für die Daten fungiert, die sich jetzt auf einem Server befinden.

Daher können Sie weiterhin die Front-End-Access-Datenbank mit verknüpften Tabellen für die SQL Server-Tabellen verwalten. Effektiv können Sie die Vorteile einer schnellen Anwendungsentwicklung, die eine Access-Datenbank bereitstellt, und die Skalierbarkeit von SQL Server ableiten.

SQL Server-Vorteile

Müssen Sie trotzdem überzeugend nach SQL Server migrieren? Hier sind einige weitere Vorteile, die Sie berücksichtigen sollten:

  • Mehr gleichzeitige Benutzer    SQL Server kann viele mehr gleichzeitige Benutzer als Access behandeln und die Speicheranforderungen minimieren, wenn weitere Benutzer hinzugefügt werden.

  • Höhere Verfügbarkeit    Mit SQL Server können Sie die Datenbank dynamisch sichern (inkrementell oder vollständig), während Sie verwendet wird. Demzufolge müssen Sie die Benutzer nicht zum Beenden der Datenbank zwingen, um Daten zu sichern.

  • Hohe Leistung und Skalierbarkeit    Die SQL Server-Datenbank führt normalerweise besser als eine Access-Datenbank, insbesondere mit einer großen Datenbank im Terabyte-Format. Außerdem verarbeitet SQL Server Abfragen wesentlich schneller und effizienter, indem Abfragen parallel verarbeitet werden, wobei mehrere systemeigene Threads innerhalb eines einzelnen Prozesses verwendet werden, um Benutzeranforderungen zu verarbeiten.

  • Verbesserte Sicherheit    Wenn Sie eine vertrauenswürdige Verbindung verwenden, wird SQL Server in die Windows-Systemsicherheit integriert, um einen einzigen integrierten Zugriff auf das Netzwerk und die Datenbank bereitzustellen, wobei beide Sicherheitssysteme optimal eingesetzt werden. Dies erleichtert die Verwaltung komplexer Sicherheitsschemas. SQL Server eignet sich ideal für vertrauliche Informationen wie sozialVersicherungsnummern, Kreditkartendaten und Adressen.

  • Sofortige Wiederherstellbarkeit    Wenn das Betriebssystem abstürzt oder der Strom ausfällt, kann SQL Server die Datenbank innerhalb weniger Minuten und ohne Eingreifen des Datenbankadministrators automatisch in einem konsistenten Zustand wiederherstellen.

  • Verwendung von VPN    Access und Virtual Private Networks (VPN) werden nicht miteinander verbunden. Bei SQL Server können Remotebenutzer jedoch weiterhin die Access-Front-End-Datenbank auf einem Desktop und das SQL Server-Back-End verwenden, das sich hinter der VPN-Firewall befindet.

Erste Schritte

Es gibt ein paar Probleme, die Sie im Vorfeld beheben können, um den Migrationsprozess vor der Ausführung von SSMA zu optimieren:

  • Hinzufügen von Tabellen Indizes und Primärschlüsseln    Stellen Sie sicher, dass jede Access-Tabelle einen Index und einen Primärschlüssel aufweist. Für SQL Server muss für alle Tabellen mindestens ein Index vorhanden sein, und es muss eine verknüpfte Tabelle mit einem Primärschlüssel vorhanden sein, wenn die Tabelle aktualisiert werden kann.

  • Überprüfende Primär-/Fremdschlüsselbeziehungen    Stellen Sie sicher, dass diese Beziehungen auf Feldern mit konsistenten Datentypen und Größen basieren. SQL Server unterstützt keine verknüpften Spalten mit unterschiedlichen Datentypen und Größen in Fremdschlüsseleinschränkungen.

  • Entfernen der Spalte "Anlage"    SSMA migriert keine Tabellen, die die Anlage Spalte enthalten.

Führen Sie die folgenden ersten Schritte aus, bevor Sie SSMA ausführen.

  1. Schließen Sie die Access-Datenbank.

  2. Stellen Sie sicher, dass die mit der Datenbank verbundenen aktuellen Benutzer auch die Datenbank schließen.

  3. Wenn die Datenbank im MDB-Dateiformatvorliegt, Entfernen Sie die Sicherheits.

  4. Sichern Sie Ihre Datenbank. Weitere Informationen finden Sie unter Schützen von Daten mit Sicherungs-und Wiederherstellungsprozessen.

Tipp    Sie sollten die Installation von Microsoft SQL Server Express Edition auf Ihrem Desktop mit bis zu 10 GB unterstützen und ist eine kostenlose und einfachere Möglichkeit, Ihre Migration durchzuführen und zu überschauen.

Tipp    Verwenden Sie nach Möglichkeit eine eigenständige Version von Access. Wenn Sie nur Office 365 verwenden können, verwenden Sie das Access 2010-Datenbankmodul zum Migrieren Ihrer Access-Datenbank bei Verwendung von SSMA. Weitere Informationen finden Sie unter Microsoft Access Database Engine 2010 Redistributable.

Ausführen von SSMA

Microsoft bietet Microsoft SQL Server Migrationsassistent (SSMA), um die Migration zu vereinfachen. SSMA migriert hauptsächlich Tabellen und wählt Abfragen ohne Parameter aus. Formulare, Berichte, Makros und VBA-Module werden nicht konvertiert.

  1. Zum Migrieren einer Datenbank mithilfe von SSMA laden Sie zunächst , und installieren Sie die Software, indem Sie auf die heruntergeladene MSI-Datei doppelklicken. Stellen Sie sicher, dass Sie die entsprechende 32-oder 64-Bit-Version für Ihren Computer installieren.

  2. Öffnen Sie nach der Installation von SSMA auf Ihrem Desktop, vorzugsweise auf dem Computer mit der Access-Datenbankdatei.

    Sie können Sie auch auf einem Computer öffnen, der über das Netzwerk in einem freigegebenen Ordner Zugriff auf die Access-Datenbank hat.

  3. BeFolgen Sie die Anweisungen für den Anfang in SSMA, um grundlegende Informationen wie den SQL Server-Speicherplatz, die Access-Datenbank und die zu migrierenden Objekte, Verbindungsinformationen und die Frage anzugeben, ob verknüpfte Tabellen erstellt werden sollen.

  4. Wenn Sie zu SQL Server 2016 oder höher migrieren und eine verknüpfte Tabelle aktualisieren möchten, fügen Sie eine timestamp-Spalte hinzu, indem Sie _GT_ Projekteinstellungen > . Weitere Informationen finden Sie unter Access-verknüpfte Tabelle mit SQL Server-DatenbankRückgabe #deleted.

  5. Um genaue Datentypen festzulegen, wählen Sie überprüfen-Tools _GT_ projektEinstellungen > Typzuordnung aus. Wenn Sie z. b. nur englischen Text speichern, können Sie den Datentyp varchar anstelle von nvarchar verwenden.

Der SQL Server-Metadaten-Explorer zeigt die Access-Datenbankobjekte und SQL Server-Objekte an, mit denen Sie den aktuellen Inhalt beider Datenbankenüber prüfen können. Diese beiden Verbindungen werden in ihrer Migrationsdatei gespeichert, wenn Sie sich entscheiden, in Zukunft weitere Objekte zu übertragen.

Hinweis    Je nach Größe Ihrer Datenbankobjekte und der zu übertragenden Datenmenge kann der Migrationsvorgang einige Zeit in Anspruch nehmen.

Umwandeln von Objekten

SSMA konvertiert Access-Objekte in SQL Server-Objekte, es kopiert die Objekte jedoch nicht sofort. SSMA enthält eine Liste der folgenden zu migrierenden Objekte, sodass Sie entscheiden können, ob Sie Sie in die SQL Server-Datenbank verschieben möchten:

  • Tabellen und Spalten

  • Wählen Sie Abfragen ohne Parameter aus.

  • Primär-und Fremdschlüssel

  • Indizes und Standardwerte

  • Überprüfen von Einschränkungen (Spalteneigenschaft Null Länge zulassen, Spalten Überprüfungsregel, Tabellenüberprüfung)

Als bewährte Methode verwenden Sie den SSMA-Bewertungsbericht, der die Konvertierungsergebnisse einschließlich Fehler, Warnungen, Informationsmeldungen, Zeitschätzungen für die Durchführung der Migration sowie einzelne Fehlerkorrektur Schritte zeigt, die Sie vor dem tatsächlichen Verschieben der Objekte.

Zum Konvertieren von Datenbankobjekten werden die Objektdefinitionen aus den Access-Metadaten verwendet, Sie werden in eine äquivalente Transact-SQL (T-SQL)-Syntaxkonvertiert, und diese Informationen werden dann in das Projekt geladen. Sie können dann die SQL Server-oder SQL Azure-Objekte und ihre Eigenschaften mithilfe von SQL Server oder SQL Azure Metadata Explorer anzeigen.

Folgen Sie diesem Leitfaden, um Objekte in SQL Server umzuwandeln, zu laden und zu migrieren.

Tipp    Nachdem Sie Ihre Access-Datenbank erfolgreich migriert haben, speichern Sie die Projektdatei für die spätere Verwendung, sodass Sie Ihre Daten zum Testen oder zur endgültigen Migration erneut migrieren können.

Verknüpfen von Tabellen

Sie sollten die neueste Version der SQL Server OLE DB-und ODBC-Treiber installieren, anstatt die nativen SQL Server-Treiber zu verwenden, die im Lieferumfang von Windows enthalten sind. Die neueren Treiber sind nicht nur schneller, sondern unterstützen auch neue Features in Azure SQL, die die vorherigen Treiber nicht haben. Sie können die Treiber auf jedem Computer installieren, auf dem die konvertierte Datenbank verwendet wird. Weitere Informationen finden Sie unter Microsoft OLE DB-Treiber 18 für SQL Server und Microsoft ODBC-Treiber 17 für SQL Server.

Nachdem Sie die Access-Tabellen migriert haben, können Sie eine Verknüpfung zu den Tabellen in SQL Server herstellen, die jetzt Ihre Daten hosten. Das direkte verknüpfen mit Access bietet Ihnen außerdem eine einfachere Möglichkeit zum Anzeigen Ihrer Daten anstelle der komplexeren SQL Server-Verwaltungstools.  Abhängig von den Berechtigungen, die von Ihrem SQL Server-Datenbankadministrator https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/managing-logins-users-and-schemas-how-to-topics?view=sql-server-2017 eingerichtet wurden, können Sie verknüpfte Daten Abfragen und bearbeiten.

Hinweis    Wenn Sie während des Verknüpfungsvorgangs einen ODBC-DSN erstellen, wenn Sie eine Verknüpfung mit Ihrer SQL Server-Datenbank herstellen, erstellen Sie denselben DSN auf allen Computern, die die neue Anwendung verwenden.

Weitere Informationen finden Sie unter Verknüpfen oder Importieren von Daten aus einer Azure SQL Server-Datenbank und Importieren von oder Verknüpfen mit Daten in einer SQL Server-Datenbank.

Tipp Vergessen Sie nicht, den Tabellenverknüpfungs-Manager in Access zu verwenden, um Tabellen komfortabel zu aktualisieren und erneut zu verknüpfen. Weitere Informationen finden Sie unter Verwalten von verknüpften Tabellen.

Testen und überprüfen

In den folgenden Abschnitten werden häufig auftretende Probleme beschrieben, die während der Migration auftreten können, und wie diese behandelt werden.

Abfragen

Nur ausgewählte Abfragen werden konvertiert; andere Abfragen werden nicht ausgeführt, einschließlich Auswahlabfragen, die Parameter übernehmen. Einige Abfragen werden möglicherweise nicht vollständig konvertiert, und SSMA meldet Abfrage Fehler während des Konvertierungsvorgangs. Sie können Objekte, die nicht mit der T-SQL-Syntax konvertiert werden, manuell bearbeiten. Syntax Fehler erfordern möglicherweise auch das manuelle Konvertieren von Zugriffs spezifischen Funktionen und Datentypen in SQL Server. Allgemeine SQL-Syntax Unterschiede umfassen:

  • Access verwendet das Sternchen (*) als Platzhalterzeichen, während T-SQL das Prozent (%) verwendet.

  • Access verwendet Anführungszeichen in Tabellennamen und-Objekten. T-SQL kann Sie für Tabellennamen mit Leerzeichen verwenden, dies ist jedoch keine übliche Benennungsmethode. In den meisten Fällen sollten Objektnamen ohne Leerzeichen umbenannt werden, aber Abfragen müssen auch neu geschrieben werden, um neue Tabellennamen widerzuspiegeln. Verwenden Sie eckige Klammern [] für Tabellen, die nicht umbenannt werden können, die jedoch nicht den Benennungsstandards entsprechen.

  • Access fügt zusätzliche Klammern um Parameter in Abfragen hinzu, die entfernt werden können.

  • SQL Server behandelt NULLwerte und Zeichenfolgenverkettungen unterschiedlich. Testen Sie Abfragen, um sicherzustellen, dass die richtigen Werte zurückgegeben werden.

  • Für bedingte Anweisungen verwendet Access die Funktion IIF, während T-SQL häufig den Fall verwendet, obwohl SQL Server 2012 und höher die Funktion IIfunterstützt.

  • Mehrere Funktionen und Datentypen werden in Access und T-SQL anders verwendet. SSMA sollte diese für Sie umwandeln, Sie müssen jedoch möglicherweise weitere manuelle Änderungen vornehmen.

Datentypen

Access und SQL Server weisen ähnliche Datentypen auf, berücksichtigen jedoch die folgenden potenziellen Probleme.

Der Datentyp "große Zahl"    Der Datentyp "große Zahl" speichert einen nicht monetären, numerischen Wert und ist mit dem SQL BIGINT-Datentyp kompatibel. Sie können diesen Datentyp verwenden, um große Zahlen effizient zu berechnen, aber er erfordert die Verwendung des Access 16 (16.0.7812 oder höher). accdb-Datenbankdateiformat und führt mit der 64-Bit-Version von Access eine bessere Leistung aus. Weitere Informationen finden Sie unter Verwenden des Datentyps "große Zahl" und wählen zwischen der 64-oder 32-Bit-Version von Office.

Anlage   Der Anlagetyp speichert eine Datei in der Access-Datenbank. In SQL Server stehen Ihnen mehrere Optionen zur Verfügung. Sie können die Dateien aus der Access-Datenbank extrahieren und dann Links zu den Dateien in der SQL Server-Datenbank speichern. Alternativ können Sie FILESTREAM oder Datei Tabellen verwenden, um Anlagen in der SQL Server-Datenbank zu speichern.

Link    Access-Tabellen weisen Link Spalten auf, die von SQL Server nicht unterstützt werden. Standardmäßig werden diese Spalten in SQL Server in Spalten vom Typ nvarchar (max) konvertiert, Sie können die Zuordnung jedoch anpassen, um einen kleineren Datentyp auszuwählen. In Ihrer Access-Lösung können Sie das Hyperlink-Verhalten in Formularen und Berichten weiterhin verwenden, wenn Sie die Hyperlink -Eigenschaft für das Steuerelement auf true festlegen.

Mehrwertiges Feld    Das Feld "Access-mehrwertig" wird in SQL Server als ntext-Feld konvertiert, das den begrenzten Satz von Werten enthält. Da SQL Server keinen mehrwertigen Datentyp unterstützt, der eine Zahl-zu-Zahl-Beziehung modelliert, sind möglicherweise zusätzliche Entwurfs-und Konvertierungs Arbeiten erforderlich.

Weitere Informationen zum Zuordnen von Access-und SQL Server-Datentypen finden Sie unter Vergleichen von Datentypen.

Hinweis    Mehrwertige Felder werden nicht konvertiert und in Access 2010 nicht mehr unterstützt.

Visual Basic

Obwohl VBA von SQL Server nicht unterstützt wird, sollten Sie die folgenden möglichen Probleme beachten:

VBA-Funktionen in Abfragen    Access-Abfragen unterstützen VBA-Funktionen für Daten in einer Abfrage Spalte. Access-Abfragen, die VBA-Funktionen verwenden, können jedoch nicht auf SQL Server ausgeführt werden, sodass alle angeforderten Daten zur Verarbeitung an Microsoft Access übergeben werden. In den meisten Fällen sollten diese Abfragen in Remoteabfragen ( Pass-Through-Abfragen, gespeicherte Prozeduren oder Sichten) konvertiert werden, die in SQL Server ausgeführt werden, um eine optimale Leistung zu erzielen.

Benutzerdefinierte Funktionen in Abfragen    Microsoft Access-Abfragen unterstützen die Verwendung von in VBA-Modulen definierten Funktionen zum Verarbeiten von Daten, die an Sie übergeben werden. Bei Abfragen kann es sich um eigenständige Abfragen, SQL-Anweisungen in Formular/Berichtsdaten Satz Quellen, Datenquellen für Kombinationsfelder und Listenfelder für Formulare, Berichte und Tabellen Felder sowie um Standardausdrücke oder Gültigkeitsprüfungsregeln handeln. SQL Server kann diese benutzerdefinierten Funktionen nicht ausführen. Sie müssen diese Funktionen möglicherweise manuell neu entwerfen und in gespeicherte Prozeduren auf SQL Server konvertieren.

Optimieren der Leistung

Die wichtigste Möglichkeit, die Leistung mit Ihrem neuen Back-End-SQL Server zu optimieren, besteht bei weitem darin, zu entscheiden, wann lokale oder Remoteabfragen verwendet werden sollen. Wenn Sie Ihre Daten nach SQL Server migrieren, wechseln Sie auch von einem Datei Server zu einem Client-Server-Datenbankmodell von Computing. BeFolgen Sie diese allgemeinen Richtlinien:

  • Ausführen kleiner, schreibgeschützter Abfragen auf dem Client zum schnellsten Zugriff.

  • Führen Sie lange Lese-und Schreib Abfragen auf dem Server aus, um die höhere Verarbeitungsleistung zu nutzen.

  • Minimieren Sie den Netzwerkdatenverkehr mit Filtern und Aggregationen, um nur die benötigten Daten zu übertragen.

Optimieren der Leistung im Client Server-Datenbankmodell

Ihre Anwendung kann auch benutzerdefinierte Funktionen, gespeicherte Prozeduren und Trigger verwenden, um Anwendungslogik, Geschäftsregeln und-Richtlinien, komplexe Abfragen, Datenüberprüfung und referentieller Integritäts Code auf dem Server zu zentralisieren und freizugeben, und nicht auf der Client.

Vermeiden Sie die Ausführung einer Abfrage, die eine lokale Access-Tabelle und eine SQL Server-Tabelle kombiniert, die häufig als Hybrid Abfrage bezeichnet wird. Für diese Art von Abfrage ist weiterhin der Zugriff erforderlich, um alle SQL Server-Daten auf den lokalen Computer herunterzuladen und die Abfrage auszuführen, und die Abfrage wird in SQL Server nicht ausgeführt.

Öffnen Sie kein Formular-Recordset auf der Grundlage einer umfangreichen Tabelle, und deaktivieren Sie die Datensatznavigation.

Testen Sie abschließend jede Abfrage, um eine optimale Leistung zu erzielen.

Weitere Informationen finden Sie unter Datenbankmodul-Optimierungsratgeber, Verwenden des Leistungsanalysetools zum Optimieren einer Access-Datenbankund Optimieren von Microsoft Office Access-Anwendungen, die mit SQL Server verbunden.

Siehe auch

Azure-Datenbank-Migrationshandbuch

Microsoft-Daten Migrations Blog

Microsoft Access für SQL Server-Migration,-Konvertierung und-Upsizing

Möglichkeiten der Freigabe einer Access-Desktopdatenbank

Ihre Office-Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×