Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Nicht alle Access-Datenbankfeatures funktionieren mit SQL Server. Sql Server und Access verwenden z. B. unterschiedliche Gruppen reservierter Schlüsselwörter. Diese Unterschiede können probleme verursachen, wenn Sie den SQL Server-Migrations-Assistenten (SSMA) verwenden. Der folgende Abschnitt beschreibt mögliche Migrationsprobleme und wie Sie sie beheben können.
Datenbankeinstellungen oder -features, die sich auf die Migration auswirken können
Überprüfen Sie die folgenden Access-Einstellungen oder -Features, die sich auf die Migration zu SQL Server oder Azure SQL auswirken können.
- Tabellen weisen keine eindeutigen Indizes auf
- Tabellen weisen Replikationsspalten auf
- Tabellen mit eindeutigen Indizes enthalten mehrere NULL-Werte
- Tabellen enthalten Datumswerte, die außerhalb des SQL Server-Bereichs liegen
- Indexlängen überschreiten 900 Bytes
- Objektnamen sind SQL Server-Schlüsselwörter oder enthalten Sonderzeichen
- Abweichende Feldgrößen bei Primär- oder Fremdschlüsselbeziehungen
- Referenzierte Tabellen verfügen nicht über einen Primärschlüssel oder einen eindeutigen Index
- Tabellen weisen Linkspalten auf
- Funktionen können nicht in SQL Server oder Azure SQL konvertiert werden.
Tabellen weisen keine eindeutigen Indizes auf
Wenn Sie eine Tabelle ohne einen eindeutigen Index zu SQL Server migrieren, können Sie die Tabelle nach der Migration nicht mehr ändern. Diese Einschränkung kann zu Anwendungskompatibilitätsproblemen führen.
Wenn Sie Access-Datenbankobjekte konvertieren, werden im Ausgabefenster alle Access-Tabellen aufgelistet, die keine eindeutigen Indizes enthalten.
Sie können Access so konfigurieren, dass während der Konvertierung der SQL Server-Tabelle ein Primärschlüssel hinzugefügt wird. Weitere Informationen finden Sie unter Projekteinstellungen (Umwandlung).
Tabellen haben Replikationsspalten.
Wenn Sie eine Access-Tabelle migrieren, die Replikationssystemspalten zu SQL Server enthält, funktioniert die Jet-Replikationsfunktionalität nach der Migration nicht mehr.
Ziehen Sie nach der Migration die Verwendung der SQL Server-Replikation in Betracht, um synchronisierte Kopien Ihrer Datenbanken zu verwalten.
Tabellen mit eindeutigen Indizes enthalten mehrere NULL-Werte
Vor Version 8.13 können Sie Access-Tabellen mit eindeutigen Indizes mit mehreren Nullwerten nicht in SQL Server übertragen. In SQL Server können eindeutige Indizes mehrere NULL-Werte nicht zulassen. Die Migration schlägt für diese Tabellen fehl.
SSMA kennzeichnet dieses Problem in Bewertungsberichten. Informationen zum Erstellen eines Bewertungsberichts finden Sie unter Bewerten von Access-Datenbankobjekten für die Konvertierung.
Wenn dieses Problem besteht, stellen Sie sicher, dass der Primärschlüssel keine doppelten Nullwerte aufweist. Oder entfernen Sie den Primärschlüssel oder eindeutige Indizes, die mehrere Nullwerte enthalten.
Tabellen enthalten Datumswerte, die außerhalb des SQL Server-Bereichs liegen
Der SQL Server-Datetime-Typ akzeptiert nur Datumsangaben im Bereich vom 1. Januar 1753 bis zum 31. Dezember 9999. Access akzeptiert Datumsangaben im Bereich vom 1. Januar 100 bis zum 31. Dezember 9999.
SSMA kennzeichnet dieses Problem in Bewertungsberichten. Informationen zum Erstellen eines Bewertungsberichts finden Sie unter Bewerten von Access-Datenbankobjekten für die Konvertierung.
Sie können konfigurieren, wie SSMA Datumsangaben aufgelöst, die sich außerhalb des SQL Server-Bereichs befinden. Weitere Informationen finden Sie unter Projekteinstellungen (Migration).
Indexlängen überschreiten 900 Bytes
SQL Server-Indizes haben ein Limit von 900 Byte für die Gesamtgröße von Indexschlüsselspalten. Wenn Ihre Access-Tabellen größere Indizes verwenden, zeigt SSMA eine Warnung an.
Wenn Sie mit der Datenmigration fortfahren, schlägt die Migration möglicherweise fehl.
Objektnamen sind SQL Server-Schlüsselwörter oder enthalten Sonderzeichen
Access und SQL Server verfügen über unterschiedliche Gruppen reservierter Schlüsselwörter und Sonderzeichen. SQL Server akzeptiert Objekte, die mithilfe von SQL Server Schlüsselwörtern benannt werden oder Sonderzeichen enthalten, wenn Sie Klammern oder zitierte Bezeichner verwenden, wie select oder [select].p. Weitere Informationen finden Sie unter Datenbankbezeichner.
Hinweis
Um Anführungszeichen zum Abgrenzen von Bezeichnern zu verwenden, muss SET QUOTED_IDENTIFIERON sein.
Beispielsweise CREATE TABLE [schema](c1 [FOR]) ist eine gültige Anweisung, obwohl schema und FOR reservierte Schlüsselwörter sind. Auch ist CREATE TABLE [xxx*yyy](c1 x&y) eine gültige Anweisung, auch wenn der Tabellen- und Spaltenname die Sonderzeichen * und & enthält.
Alle Abfragen, die auf diese Objekte verweisen, müssen auch die Namen mit Klammern oder Anführungszeichen verwenden. Die Abfrage SELECT * FROM schema schlägt z. B. fehl. Die richtige Abfrage lautet: SELECT * FROM [schema].
Wenn Sie Access-Datenbankobjekte konvertieren, werden im Ausgabebereich alle Access-Tabellen aufgelistet, die Schlüsselwörter oder Sonderzeichen verwenden. Sie können die Tabellen in Access ändern und dann die Datenbank erneut entfernen und hinzufügen. Oder Sie können Abfragen ändern, die auf diese Objekte verweisen, sodass die Abfragen Klammern oder Anführungszeichen zum Trennen von Bezeichnern verwenden. Wenn Sie Ihre Abfragen nicht ändern, geben Ihre Access-Anwendungen möglicherweise Fehler zurück oder haben andere Probleme.
Feldgrößen unterscheiden sich in Primärschlüssel- oder Fremdschlüsselbeziehungen
SQL Server unterstützt nicht die Jet-Funktionalität des Verknüpfens von Spalten mit unterschiedlichen Datentypen oder Größen mit Fremdschlüsseleinschränkungen.
Wenn Sie Access-Datenbankobjekte konvertieren, werden im Ausgabefenster alle Primärschlüssel- oder Fremdschlüsseleinschränkungen aufgelistet, die nicht in SQL Server konvertiert werden. Sie können Datentypen und Größen in Access-Spalten so ändern, dass sie übereinstimmen, dann die Access-Datenbank wieder entfernen und wieder hinzufügen. Oder Sie können Daten migrieren, obwohl diese Einschränkungen nicht in SQL Server erstellt werden.
Referenzierte Tabellen verfügen nicht über einen Primärschlüssel oder einen eindeutigen Index
Access akzeptiert Beziehungen zwischen Tabellen, bei denen die referenzierte Tabelle keinen Primärschlüssel oder einen eindeutigen Index hat. SQL Server unterstützt diese Art von Beziehung jedoch nicht.
Wenn Sie Access-Datenbankobjekte konvertieren, listet das Ausgabefenster alle Tabellen auf, die Beziehungen haben, jedoch keinen Primärschlüssel oder eindeutigen Index. Sie können die Tabellen so ändern, dass Primärschlüssel oder eindeutige Indizes hinzugefügt werden, dann die Access-Datenbank wieder entfernt und wieder hinzugefügt werden. Oder Sie können Daten migrieren, obwohl die Beziehung zwischen den Tabellen unterbrochen ist.
Tabellen haben Hyperlink-Spalten
SQL Server unterstützt keine Linkspalten . Stattdessen werden die Spalten wie Access-Memospalten behandelt. Standardmäßig werden diese Spalten in nvarchar(max) -Spalten in SQL Server konvertiert. Sie können die Zuordnung anpassen. Weitere Informationen finden Sie unter Zuordnen von Quell- und Zieldatentypen.
Funktionen können nicht in SQL Server oder Azure SQL konvertiert werden.
Access-Standardausdrücke oder Gültigkeitsprüfungsregeln können Access-Systemfunktionen oder benutzerdefinierte Funktionen enthalten, die nicht SQL Server oder Azure SQL zugeordnet sind. Wenn Sie Funktionen verwenden, die nicht SQL Server oder Azure SQL zugeordnet sind, können Sie die Standardausdrücke oder Überprüfungsregeln nicht in SQL Server oder Azure SQL laden.