5 votes

Joindre une feuille de calcul Excel à une base de données SQL

Je reçois souvent des demandes qui ressemblent à ceci :

"Hey, can you reconcile this Excel spreadsheet with our database and 
fill in the additional info for the ones you find? We also need to know 
which ones are missing."

ID     Name     Client     AdditionalInfo
------------------------------------------
234    John     Client1
147    Mike     Client2
546    Mary     Client3
...
(Several hundred or thousand more rows)

Existe-t-il un moyen de prendre une telle feuille de calcul Excel et de la joindre à une base de données SQL dans SQL Server Management Studio ? En général, je copie le ID pour faire un massif IN ce qui est évidemment loin d'être idéal. Ensuite, il me reste à aligner les données si je n'obtiens pas une correspondance 1:1 pour chaque ligne.

J'utilise SQL Server 2005 et Excel 2010.

J'ai essayé d'ajouter une feuille de calcul Excel en tant que serveur lié, mais l'interrogation de ce dernier m'a averti que 'Ad Hoc Distributed Queries' sont bloqués et doivent être activés. Je ne suis pas sûr des implications négatives que cette activation peut avoir, je n'ai donc pas poursuivi dans cette voie.

J'ai ensuite pensé à utiliser les formules d'Excel pour faire une SELECT [Col_A], [Col_B], [Col_C] UNION ALL pour chaque ligne dans Excel, puis copier cela dans SSMS pour créer une table temporaire que je pourrais joindre... mais cela semble encore être un hack assez désordonné et inefficace

5voto

Melanie Points 1946

Vous pourriez importer votre feuille de calcul Excel dans une table de votre base de données créée spécifiquement pour cette raison. Dans SSMS, faites un clic droit sur votre base de données, allez dans Tâches->Importer des données et choisissez Excel comme source de données.

0voto

Joel Coehoorn Points 190579

Excel peut se connecter directement à Sql Server. Plus précisément, vous voulez utiliser Requête MS . Cela vous permettra de joindre votre feuille de calcul Excel directement à une base de données en utilisant SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X