Share via


Fonctionnalités d’accès incompatibles (AccessToSQL)

Toutes les fonctionnalités de base de données Access ne sont pas compatibles avec SQL Server. Par exemple, SQL Server et Access ont différents ensembles de mot clé réservés. Les problèmes tels que ceux-ci peuvent empêcher une migration réussie vers SQL Server. Utilisez le tableau suivant pour en savoir plus sur les problèmes de migration possibles et ce que vous pouvez faire à leur sujet.

Paramètres de base de données ou fonctionnalités susceptibles d’affecter la migration

Paramètre ou fonctionnalité de base de données Access Problème de migration
Les tables d’accès n’ont pas d’index uniques. Si une table qui n’a pas d’index unique est migrée vers SQL Server, vous ne pouvez pas modifier la table après la migration. Cela peut entraîner des problèmes de compatibilité d’application.

Lorsque vous convertissez des objets de base de données Access, la fenêtre Sortie répertorie les tables Access qui n’ont pas d’index uniques.

Vous pouvez configurer Access pour ajouter une clé primaire sur la table SQL Server pendant la conversion. Pour plus d’informations, consultez Project Paramètres (Conversion).
Les tables d’accès ont des colonnes de réplication. Si une table Access qui inclut des colonnes de système de réplication est migrée vers SQL Server, la fonctionnalité de réplication Jet est interrompue après la migration.

Après la migration, envisagez d’utiliser la réplication SQL Server pour gérer les copies synchronisées de vos bases de données.
Les tables d’accès qui ont des index uniques contiennent plusieurs valeurs Null. Avant la version 8.13, les tables Access qui ont des index uniques avec plusieurs valeurs Null ne peuvent pas être transférées vers SQL Server, car dans SQL Server, les index uniques interdisent plusieurs valeurs Null. La migration échoue pour ces tables.

SSMA signale ce problème dans les rapports d’évaluation. Pour créer un rapport d’évaluation, consultez Évaluation des objets de base de données Access pour la conversion.

Si ce problème existe, vous devez vous assurer que la clé primaire n’a pas de valeurs null dupliquées. Vous devez également supprimer la clé primaire ou les index uniques qui contiennent plusieurs valeurs Null.
Les tables d’accès contiennent des valeurs de date hors de la plage SQL Server. Le type datetime SQL Server accepte uniquement les dates comprises entre le 1er janvier 1753 et le 31 déc 9999. Access accepte les dates comprises entre le 1er janvier 100 et le 31 déc 9999.

SSMA signale ce problème dans les rapports d’évaluation. Pour créer un rapport d’évaluation, consultez Évaluation des objets de base de données Access pour la conversion.

Vous pouvez configurer la façon dont SSMA résout les dates hors de la plage SQL Server. Pour plus d’informations, consultez Project Paramètres (Migration).
Les longueurs d’index dans Access dépassent 900 octets. Les index SQL Server ont une limite de 900 octets pour la taille totale des colonnes de clé d’index. Si vos tables Access utilisent des index plus volumineux, SSMA affiche un avertissement.

Si vous poursuivez la migration des données, la migration peut échouer.
Les noms d’objets Access sont des mot clé SQL Server ou contiennent des caractères spéciaux. Access et SQL Server ont différents ensembles de mot clé réservés et de caractères spéciaux. SQL Server accepte les objets nommés à l’aide de SQL Server mot clé s ou qui contiennent des caractères spéciaux si vous utilisez des identificateurs entre crochets ou entre guillemets, tels que « select » ou [select].p. Pour plus d’informations, consultez « Identificateurs délimités (Moteur de base de données) » dans la documentation en ligne de SQL Server.

REMARQUE : Pour utiliser des guillemets pour délimiter les identificateurs, SET QUOTED_IDENTIFIER doit être ACTIVÉ.

Par exemple, CREATE TABLE [schema](c1 [FOR]) il s’agit d’une instruction valide, même si le schéma et FOR sont réservés mot clé s. CREATE TABLE [xxx*yyy](c1 x&y) Il s’agit également d’une instruction valide, même si le nom de la table et de la colonne contiennent les caractères spéciaux * ; et &.

Toutes les requêtes qui référencent ces objets doivent également utiliser les noms entre crochets ou guillemets. Par exemple, la requête SELECT * FROM schema échoue. La requête correcte est : SELECT * FROM [schema].

Lorsque vous convertissez des objets de base de données Access, le volet Sortie répertorie les tables Access qui utilisent des mot clé ou des caractères spéciaux. Vous pouvez modifier les tables dans Access, puis supprimer et ajouter à nouveau la base de données ; ou vous pouvez modifier des requêtes qui référencent ces objets afin que les requêtes utilisent des crochets ou des guillemets pour délimiter les identificateurs. Si vous ne modifiez pas vos requêtes, vos applications Access peuvent retourner des erreurs ou rencontrer d’autres problèmes.
Les tailles de champ diffèrent dans les relations de clé primaire/de clé étrangère. SQL Server ne prend pas en charge la fonctionnalité Jet de liaison de colonnes qui ont différents types de données ou tailles avec des contraintes de clé étrangère.

Lorsque vous convertissez des objets de base de données Access, la fenêtre Sortie répertorie les contraintes de clé primaire/clé étrangère qui ne seront pas converties en SQL Server. Vous pouvez modifier les types et tailles de données sur les colonnes Access afin qu’elles correspondent, puis supprimer et rajouter la base de données Access. Vous pouvez également migrer des données bien que ces contraintes ne soient pas créées dans SQL Server.
Les tables référencées dans les relations Access n’ont ni clé primaire ni index unique. Access accepte la relation entre les tables où la table référencée n’a pas de clé primaire ni d’index unique. Toutefois, cela n’est pas pris en charge par SQL Server.

Lorsque vous convertissez des objets de base de données Access, la fenêtre Sortie répertorie toutes les tables qui ont des relations, mais aucune clé primaire ni index unique. Vous pouvez modifier les tables pour ajouter des clés primaires ou des index uniques, puis supprimer et rajouter la base de données Access. Vous pouvez également migrer des données même si la relation entre les tables est rompue.
Les tables Access ont des colonnes de lien hypertexte. SQL Server ne prend pas en charge les colonnes de lien hypertexte . Au lieu de cela, les colonnes sont traitées comme des colonnes de mémo Access. Par défaut, ces colonnes sont converties en colonnes nvarchar(max) dans SQL Server. Vous pouvez personnaliser le mappage. Pour plus d’informations, consultez Mappage des types de données source et cible.
Les expressions de règle de validation ou par défaut contiennent des fonctions Access qui ne peuvent pas être converties en SQL Server ou SQL Azure. Les expressions par défaut d’accès ou les règles de validation peuvent inclure des fonctions système d’accès ou des fonctions définies par l’utilisateur qui ne sont pas mappées à SQL Server ou SQL Azure. L’utilisation de fonctions qui ne sont pas mappées à SQL Server ou SQL Azure vous empêche de charger les expressions ou les règles de validation par défaut dans SQL Server ou SQL Azure.

Voir aussi

Préparation des bases de données Access pour la migration
Migration de bases de données Access vers SQL Server