Inkompatible Access-Features (AccessToSQL)
Nicht alle Access-Datenbankfeatures sind mit SQL Server kompatibel. Beispielsweise verfügen SQL Server und Access über unterschiedliche Gruppen reservierter Schlüsselwort (keyword). Probleme wie diese können eine erfolgreiche Migration zu SQL Server verhindern. In der folgenden Tabelle erfahren Sie mehr über mögliche Migrationsprobleme und ihre Möglichkeiten.
Datenbank-Einstellungen oder Features, die sich auf die Migration auswirken können
Access-Datenbankeinstellung oder -feature | Migrationsproblem |
---|---|
Access-Tabellen weisen keine eindeutigen Indizes auf. | Wenn eine Tabelle, die keinen eindeutigen Index hat, nach SQL Server migriert wird, können Sie die Tabelle nach der Migration nicht ändern. Dies kann zu Anwendungskompatibilitätsproblemen führen. Wenn Sie Access-Datenbankobjekte konvertieren, listet das Ausgabefenster alle Access-Tabellen auf, 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 Project Einstellungen (Konvertierung). |
Access-Tabellen weisen Replikationsspalten auf. | Wenn eine Access-Tabelle, die Replikationssystemspalten enthält, nach SQL Server migriert wird, wird die Jet-Replikationsfunktionalität nach der Migration unterbrochen. Nach der Migration sollten Sie die SQL Server-Replikation verwenden, um synchronisierte Kopien Ihrer Datenbanken zu Standard. |
Access-Tabellen mit eindeutigen Indizes enthalten mehrere Nullwerte. | Vor 8.13 können Access-Tabellen mit eindeutigen Indizes mit mehreren Nullwerten nicht auf SQL Server übertragen werden, da in SQL Server eindeutige Indizes mehrere Nullen 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, müssen Sie sicherstellen, dass der Primärschlüssel keine doppelten Nullwerte aufweist. Oder Sie müssen den Primärschlüssel oder eindeutige Indizes entfernen, die mehrere Nullwerte enthalten. |
Access-Tabellen enthalten Datumswerte, die sich außerhalb des SQL Server-Bereichs befinden. | Der SQL Server-Datetime-Typ akzeptiert Nur Datumsangaben im Bereich vom 1. Januar 1753 bis 31. Dezember 9999. Access akzeptiert Datumsangaben im Bereich vom 1. Januar 100 bis 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 Project Einstellungen (Migration).For more information, see Project Einstellungen (Migration). |
Indexlängen in Access ü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. |
Access-Objektnamen sind SQL Server-Schlüsselwort (keyword) oder enthalten Sonderzeichen. | Access und SQL Server verfügen über unterschiedliche Gruppen reservierter Schlüsselwort (keyword) und Sonderzeichen. SQL Server akzeptiert Objekte, die mithilfe von SQL Server-Schlüsselwort (keyword) benannt werden oder Sonderzeichen enthalten, wenn Sie Klammern oder an zitierte Bezeichner verwenden, z. B. "Select" oder [select].p. Weitere Informationen finden Sie unter "Durch Trennzeichen getrennte Bezeichner (Datenbank-Engine)" in SQL Server Books Online. HINWEIS: Um Anführungszeichen zum Trennen von Bezeichnern zu verwenden, muss SET QUOTED_IDENTIFIER EIN sein. Ist beispielsweise CREATE TABLE [schema](c1 [FOR]) eine gültige Anweisung, obwohl Schema und FOR Schlüsselwort (keyword) reserviert sind. CREATE TABLE [xxx*yyy](c1 x&y) Außerdem ist eine gültige Anweisung, obwohl der Tabellen- und Spaltenname die Sonderzeichen * und &.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, listet der Ausgabebereich alle Access-Tabellen auf, die Schlüsselwort (keyword) 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 eckige Klammern oder Anführungszeichen verwenden, um Bezeichner zu trennen. Wenn Sie Ihre Abfragen nicht ändern, gibt Ihre Access-Anwendungen möglicherweise Fehler zurück oder haben andere Probleme. |
Feldgrößen unterscheiden sich in Primärschlüssel-/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-/Fremdschlüsseleinschränkungen aufgeführt, die nicht in SQL Server konvertiert werden. Sie können Datentypen und Größen in Access-Spalten so ändern, dass sie übereinstimmen, und dann die Access-Datenbank entfernen und erneut hinzufügen. Oder Sie können Daten migrieren, obwohl diese Einschränkungen nicht in SQL Server erstellt werden. |
Referenzierte Tabellen in Access-Beziehungen weisen weder einen Primärschlüssel noch einen eindeutigen Index auf. | Access akzeptiert beziehungen zwischen Tabellen, in denen die referenzierte Tabelle keinen Primärschlüssel oder einen eindeutigen Index besitzt. Dies wird jedoch von SQL Server nicht unterstützt. Wenn Sie Access-Datenbankobjekte konvertieren, listet das Ausgabefenster alle Tabellen mit Beziehungen, jedoch keinen Primärschlüssel oder eindeutigen Index auf. Sie können die Tabellen ändern, um Primärschlüssel oder eindeutige Indizes hinzuzufügen, und dann die Access-Datenbank entfernen und erneut hinzufügen. Oder Sie können Daten migrieren, obwohl die Beziehung zwischen den Tabellen unterbrochen wird. |
Access-Tabellen weisen Linkspalten auf. | SQL Server unterstützt keine Linkspalten . Stattdessen werden die Spalten wie Access-Memospalten behandelt. Standardmäßig werden diese Spalten in SQL Server in nvarchar(max) -Spalten konvertiert. Sie können die Zuordnung anpassen. Weitere Informationen finden Sie unter Zuordnen von Quell- und Zieldatentypen. |
Standard- oder Gültigkeitsprüfungsregelausdrücke enthalten Access-Funktionen, die nicht in SQL Server oder SQL Azure konvertiert werden können. | Access-Standardausdrücke oder Gültigkeitsprüfungsregeln können Access-Systemfunktionen oder benutzerdefinierte Funktionen enthalten, die nicht SQL Server oder SQL Azure zugeordnet sind. Die Verwendung von Funktionen, die nicht SQL Server oder SQL Azure zugeordnet sind, verhindert, dass Sie die Standardausdrücke oder Überprüfungsregeln in SQL Server oder SQL Azure laden. |
Weitere Informationen
Vorbereiten von Access-Datenbanken für die Migration
Migrieren von Access-Datenbanken zu SQL Server