2013-12-09 69 views
0

我试图从多个Excel文件加载数据到不同的sq服务器表中。目前我创建了一个包含Foreach Loop容器任务的SSIS包,可以将多个文件中的数据加载到一个表中,我有多个包含17张工作表的不同数据的Excel文件。我需要将它加载到17个不同的表格中,因为每个表格都包含不同的列。请帮助我提出任何建议。从多个Excel文件加载Excel数据到Sql Server表

回答

1

您想将17个不同的Excel文件加载到17个不同的表中? (如在不同的领域,不同的数据类型),那么你需要17个数据区。忘记For Next循环。

如果Excel文件非常相似,并且它们将放入一张表中,则可能值得使用For Each with some script。

0

此查询使用bulk insert存储在#temptable 该文件,然后从该临时表的内容插入到你的数据库所需的表,但被导入的文件是.csv。你可以保存你的excel文件为csv,然后执行此操作。

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 

要自动完成这一点,你可以把上面的查询在存储过程中使用batch.Edit该代码调用存储过程,并把这个内部textfile并保存为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"