2009-07-27 11 views
0

J'ai un fichier de données plat que j'ai besoin d'importer dans ma base de données SQL Server 2005.Comment importer vers SQL Server 2005 à partir d'un fichier plat avec des transformations de données

De nombreux champs doivent être divisés en différentes tables liées. Par exemple, le fichier à plat contient des noms, des adresses et des numéros de téléphone, le tout dans un seul enregistrement. Dans ma base de données, la table Person a plusieurs Telephones et Addresses.

Existe-t-il un processus en une étape permettant d'importer tout dans mes tableaux, ou dois-je d'abord l'importer dans une nouvelle table de mon DB (poubelle - pollution si j'oublie de le supprimer) et importer le données à partir de là en utilisant des instructions SQL et des tables temporaires?

Répondre

2

Je préfère la table à importation unique, suivie de la division en tables finales. Je conserverais également la table d'importation plutôt que de la créer/la supprimer à chaque fois.

  • plus facile à traiter wth contraintes (vérifier avant insertion dans la table finale ou mettre à jour la ligne existante)
  • Plus facile à partir des données de génération d'erreur dans la table d'importation après le retrait des lignes réussies
  • transaction côté serveur
  • données sécurité de type: pouvez-vous 100% confiance à votre source?
  • Plus facile à isNull ou NULLIF dans SQL pour traiter des chaînes vides et d'autres tels
  • et d'autres choses que je ne me rappelle en ce moment ...
+1

Oui, je suis d'accord. De même, lorsque vous avez généré des valeurs d'ID, il est pratiquement impossible de maintenir l'intégrité des données. Donc j'introduis à mes propres tables et j'utilise LinqToSQL pour l'import. –

1

Ceci est totalement un travail pour SQL Server Integration Services. Il a une grande fonctionnalité qui vous permettra de saisir un fichier à plat, de manipuler des données dessus et finalement de l'importer dans votre nouvelle base de données.

Malheureusement, il n'y a pas de solution "quick fix" facile que je connaisse en dehors de cela. Cependant, il y a la technologie que j'examinerais en premier.

+0

n'existe pas dans SQL 2005, bien que, le fait-il ...? –

+0

Beg pardon, je me trompe: http://msdn.microsoft.com/en-us/library/ms141026(SQL.90).aspx –

+0

Il fait en effet. – RolandTumble

Questions connexes