2012-05-18 3 views
2

Je réalise que vous pouvez utiliser l'assistant de migration en mode d'accès pour le convertir normalement, mais comme il s'agit d'un processus côté serveur où nous recevons quotidiennement les fichiers mdb d'une tierce partie, je dois capable de les ingérer avec une architecture sans contact. Actuellement, je suis sur le point d'écrire tout à la main (pouah) où je lis la base de données d'accès à travers une source de données et le poinçonner dans le serveur SQL à travers des encarts en vrac ou cadre d'entité. Je souhaite vraiment qu'il y ait une meilleure façon de le faire cependant. Je suis prêt à divertir beaucoup de méthodes créatives car il y a beaucoup de tables et une tonne de données.serveur mdb à sql automatisé

Répondre

2

Il y a un certain nombre de méthodes qui viennent à l'esprit, qui impliquent toutes une programmation personnalisée, mais devraient être relativement simples et faciles à mettre en œuvre. A partir d'un autre DB d'accès, ouvrez la base de données source par programme (c'est-à-dire avec VBA). Créez des tables liées au backend SQL dans la base de données source. Copiez les données du DB source vers la table liée (en utilisant insert dest select * from source).

  • Utilisez OPENDATASET ou OPENROWSOURCE avec SQL Server pour vous connecter directement à la base de données Access et copier les données. Vous pouvez utiliser à nouveau insert dest select * from source pour copier les données, ou select * into dest from source pour créer une nouvelle table à partir des données source. Cela implique de modifier certains paramètres du système sur le serveur SQL, car il n'est pas activé par défaut, mais quelques recherches Google devraient vous aider à démarrer.
  • À partir d'un programme .NET, utilisez SqlBulkCopy (qui est la classe .NET pour l'automatisation bcp) pour télécharger des données à partir de la base de données Access. Travaillez simplement avec les données directement avec ADO.Net, car il n'y a aucune raison de construire une couche EF complète juste pour migrer des données d'une source à une autre. J'ai utilisé des variantes des trois méthodes ci-dessus dans divers projets, mais pour déplacer un grand nombre de tables, j'ai trouvé l'option # 2 relativement efficace. Cela impliquera du code SQL dynamique si vos noms de tables sont dynamiques tous les jours, mais s'ils sont statiques, vous ne devrez écrire la logique qu'une seule fois et utiliser un paramètre pour la lecture du nom de fichier.

  • +0

    Excellentes idées. Ce sont déjà meilleurs que ceux que je recevais. Merci! – Allen

    Questions connexes