web-dev-qa-db-fra.com

Comment convertir un fichier Microsoft Access dans une base de données SQL Server?

Je veux savoir comment convertir un fichier de base de données Access en base de données SQL Server (fichier .mdf)?

7
Arun Thankur

L'Assistant Upsize de MS Access a été abandonné avec Access 2012. L'assistant de migration SQL Server (SSMA) est maintenant recommandé. Référence: https://accessexperts.com/blog/2013/01/30/access-2013-is-here-but-wheres-the-sql-server-upsizing-wizard/

Cependant, comme l'a souligné Johnny Bones, il m'a été relativement facile de créer une nouvelle base de données SQL Server (2012) vide, puis d'importer: 

SQL Server Management Studio, cliquez sur la base de données nouvellement créée. Tâches | Importer des données -> Importer SQL Server Wizard

  • J'ai utilisé "Moteur de base de données Access" au lieu de "Moteur de base de données Jet" pour Sans autre motif que GUESSED Jet était plus ancien. Le mien est un projet jetable Que vous voudrez peut-être étudier la différence. 
  • J'ai «éliminé» les Requêtes d'accès (vues) et juste importé les tables. 
  • Jusqu'à présent, Semble avoir été importé correctement.
11
ScottWelker

La réponse simple est: vous pouvez not "convertir" une base de données Access en une base de données SQL. Vous pouvez toutefois importer la base de données Access (tables uniquement) en SQL. N'oubliez pas que SQL est une vraie base de données et que, en tant que tel, il ne contient aucun mécanisme de création d'interface graphique ou front-end. Vous aurez toujours besoin d'Access (ou C # ou VB ou d'un autre générateur frontal) pour créer l'interface.

Vous le savez peut-être déjà, mais dans SQL Server, une requête s'appelle une vue et les modules s'appellent des procédures stockées. Vous devrez convertir vos requêtes et modules Access en conséquence si vous prévoyez de les faire résider côté serveur.

Il est en fait assez facile d'importer des tables Access dans SQL Server: vous créez simplement une base de données sur un serveur, cliquez avec le bouton droit sur le nom de la base de données et choisissez Tâches -> Importer des données. Là, vous choisirez Microsoft Access comme source de données. Le reste devrait être assez explicite.

7
Johnny Bones

JonnyBones a écrit une bonne réponse complète. D'autres ont suggéré des outils qui pourraient fonctionner. Cependant, le SSMA (Assistant de migration SQL Server) est probablement la meilleure option maintenant. (Voir this vidéo youtube pour vous aider à comprendre certains des problèmes à surmonter et pour expliquer comment utiliser SSMA. 

Avant d’envisager d’utiliser d’autres outils, qui pourraient en faire plus, vous devriez savoir pourquoi les utiliser au lieu de SSMA. Découvrez la vidéo sur youtube comme point de départ.

Sachez que l'assistant MS Access Upsizing était génial, mais qu'il est maintenant abandonné et que MS a créé une version décente de SSMA, qui est la date et la raison de la création de ces autres outils.

SSMA devrait faire ce dont vous avez besoin.

Certains éléments d'accès ne sont pas déplacés vers SQLServer et d'autres le sont.

par exemple, les déclencheurs d'accès ne le sont pas. Les contraintes d'accès aux tables le sont, les types de données booléens d'accès sont plutôt, mais vous devez travailler. La vidéo expliquera bien la plupart des problèmes.

Harvey

2
HarveyFrench

Vous pouvez essayer avec le Upsize Wizard ou copier le contenu de la table de SHOW TABLE DATA et le coller dans la table cible avec la même structure que la source.

1
Daniele