2009-07-24 5 views
0

J'essaye d'employer l'outil d'importation/exportation de MS SQL Server 2005 pour exporter une table ainsi je peux l'importer dans une autre base de données pour l'archivage. Une des colonnes est du texte, donc si je l'exporte en tant que délimité par des virgules, lorsque j'essaie de l'importer dans la table d'archivage, cela ne fonctionne pas correctement pour les lignes avec des virgules dans ce champ. Quelles options dois-je choisir pour m'assurer que mon importation fonctionnera correctement?Comment exporter des données de texte à partir d'une table SQL Server?

Répondre

3

Un an plus tard, j'ai maintenant une solution idéale pour mes besoins d'exportation de données, grâce à https://stackoverflow.com/questions/20363/

bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp" -N -S SOURCESERVERNAME -T 

bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T -E 
  • -N utiliser les types natifs
  • -T utiliser la connexion de confiance
  • -S ServerName
  • -E Conserver les valeurs d'identité spécifiées dans le fichier de données

Très rapide et facile à intégrer dans le code.

0

Utilisez les guillemets comme identificateur de texte

qualificatif de texte: Tapez le qualificatif de texte à utiliser. Par exemple, vous pouvez spécifier que chaque colonne de texte soit entourée de guillemets.

+0

J'ai essayé d'utiliser des guillemets comme qualificatif de texte aussi mais la plupart de mes lignes ont un "dedans de toute façon, d'après ce que je peux dire, les données exportées ne peuvent pas échapper à – kenwarner

2

Je n'utilise jamais le séparateur de virgules sauf si le client l'exige. Essayez d'utiliser | en tant que délimiteur. Vous pouvez également utiliser le qualificateur de texte si nécessaire.

+0

cela aura le même problème que d'utiliser la virgule. -delimited. si une ligne a un | dans celui-ci, il ne sera pas importé correctement. ce cas est beaucoup moins commun que d'avoir un, mais toujours assez commun pour ne pas fonctionner correctement – kenwarner

+0

Je fais des centaines d'importations par semaine à partir de 50 ou 60 clients différents et seulement quelques fois nous avons eu des données avec un | dedans. Dans ces cas, nous avons utilisé ~ comme délimiteur ou ajouté le qualificateur de texte. Et dans un cas, nous leur avons demandé de corriger l'enregistrement incriminé dans un fichier de 20 millions d'enregistrements pour éviter d'avoir à changer le processus. Si vous exportez, vous avez le contrôle des données et pouvez trouver les enregistrements avec un | et corrigez-les pour utiliser un autre caractère à la place avant de faire l'exportation. Beaucoup plus difficile à faire avec virgule en raison de la signification des données lorsque les virgules sont utilisées vice quand | s sont utilisés. – HLGEM

Questions connexes