web-dev-qa-db-fra.com

Exporter / importer des données d'Excel dans un tableau avec des requêtes

Je suis un débutant intéressé à apprendre et à mettre en œuvre des choses que j'apprends. Je travaille sur SQL Server 2014 ces jours-ci et je l'adore.

Je suis tombé sur certains scénarios où j'aurais un document Excel avec 70 000 lignes et environ 10 à 12 colonnes importées dans SQL Server (une table), utilisez-le pour comparer/insérer/modifier des données existantes dans d'autres tables. J'utilise actuellement la fonction manuelle disponible dans l'interface graphique (clic droit >> Tâches >> Importer) pour importer et exporter en cas de besoin; cependant, j'ai été informé par un de mes collègues que la même procédure peut également être effectuée via des scripts/requêtes.

Quelqu'un peut-il me faire savoir quelle est la bonne façon d'écrire une requête pour importer des fichiers au format XLS, XLSX, CSV dans une table?

P.S .: J'ai également essayé de lire quelques articles sur OPENDATASOURCE et OPENROWSET où je n'ai pas réussi, obtenant toujours des erreurs dont je n'ai aucune idée. Donc, en cherchant s'il y a d'autres moyens et désireux d'apprendre leur procédure.

6
CrazieMaze

J'ai utilisé Openrowset plusieurs fois pour cette tâche.

Ce code créera une table en SQL.

SELECT * INTO Excel_IMPORT
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:\Excel\Spreadsheet.xls; HDR=YES; IMEX=1',
'SELECT * FROM [Sheet1$]');

Idéalement, vous souhaitez d'abord créer la table, puis utiliser INSERT INTO au lieu de SELECT INTO. De cette façon, vous pouvez contrôler les types de données de colonne.

8
Geoff Dawdy