2010-08-13 31 views
2

essaie d'importer des données Excel 2003 dans la table SQL pour SQL Server 2008.utilitaire BCP pour créer un fichier de format, pour importer des données Excel vers SQL Server 2008 pour l'insertion VRAC

essayé d'ajouter un serveur lié mais ont rencontré avec peu de succès. Maintenant, j'essaie de vérifier s'il existe un moyen d'utiliser l'utilitaire BCP pour effectuer une opération BULK insert ou BULK avec OPENROWSET, en utilisant un fichier de format pour obtenir le mappage Excel. Tout d'abord, comment puis-je créer un fichier de format pour une table, qui a des colonnes nommées différemment des colonnes de la feuille de calcul Excel? Ensuite, comment utiliser ce fichier de format pour importer des données à partir d'un fichier, par exemple: C: \ Folder1 \ Excel1.xsl dans la table Table1?

Merci.

Répondre

0

Il existe quelques exemples here qui montrent à quoi devrait ressembler le fichier de données (csv) et à quoi devrait ressembler le fichier de format. À moins que vous ayez besoin de faire cela, je ferais simplement le fichier de format, enregistrer les données Excel dans csv, puis essayer d'utiliser bcp ou OPENROWSET.

Le fichier de format spécifie les noms de colonne pour la destination. Le fichier de données n'a pas d'en-tête de colonne, vous n'avez donc pas à vous soucier de la différence entre les colonnes excel (source).

Si vous devez effectuer plus de mappage, etc., créez un package SSIS. Vous pouvez utiliser l'assistant d'importation de données pour démarrer, puis enregistrer en tant que package SSIS, puis modifier le contenu de votre cœur.

Si c'est un one-off, j'utiliserais la taille d'importation de données SQL, à partir du clic droit sur la base de données dans mgmt studio. Si vous avez juste quelques lignes à importer à partir d'Excel, j'ouvre généralement une requête pour éditer 200 lignes, éditer la requête pour qu'elle corresponde aux colonnes d'Excel, puis copier et coller les lignes d'Excel dans le studio SQL mgmt. Ne gère pas très bien les erreurs, mais rapidement.