2017-10-02 5 views
1

J'ai un fichier Excel avec quelques colonnes (20) et certaines données que j'ai besoin de télécharger dans 4 tables SQL Server. Les tables sont liées et les colonnes spécifiques représentent mon identifiant pour chaque table.Extraction des données de la feuille Excel vers plusieurs tables SQL Server

Existe-t-il un outil ETL pour automatiser ce processus?

+0

La réponse est oui - il existe plusieurs outils que vous pourriez utiliser. Un peu de googling vous donnerait cette réponse. –

Répondre

0

Cette requête utilise bulk insert pour enregistrer le fichier dans un #temptable puis insère le contenu de cette table temporaire dans la table que vous voulez dans la base de données, mais le fichier importé est .csv. vous pouvez juste enregistrer votre fichier Excel comme csv, avant de le faire.

CREATE TABLE #temptable (col1,col2,col3) 
BULK INSERT #temptable from 'C:\yourfilelocation\yourfile.csv' 
WITH 
    (
    FIRSTROW = 2, 
    fieldterminator = ',', 
    rowterminator = '0x0A' 
    ) ` 


INSERT INTO yourTableInDataBase (col1,col2,col3) 
SELECT (col1,col2,col3) 
FROM #temptable 

Automatiser, vous pouvez mettre cela à l'intérieur d'une procédure stockée et appeler la procédure stockée en utilisant ce code batch.Edit et de mettre cela à l'intérieur textfile et enregistrer en tant que cmd

set MYDB= yourDBname 
set MYUSER=youruser 
set MYPASSWORD=yourpassword 
set MYSERVER=yourservername 
sqlcmd -S %MYSERVER% -d %MYDB% -U %MYUSER% -P %MYPASSWORD% -h -1 -s "," -W -Q "exec yourstoredprocedure" 
+0

Merci NT-Hero, je vais essayer et voir jusqu'où je peux aller d'ici. –

+0

@EzekielInalegwuAkoji as-tu essayé? ça a marché? –

+0

J'ai été en mesure d'extraire les données vers SQL Server. En utilisant la méthode que vous avez décrite, le problème peut être résolu. J'évalue aussi quelques outils ETL (SSIS, Studio Talend, Jasper ETL). Toujours en cours de développement. –