我正在尝试将具有多个工作表的多个excel文件中的数据加载到不同的sq服务器表中。目前我创建了一个带有Foreach循环容器任务的SSIS包,可以将多个文件中的数据加载到1个表中,我有多个excel文件,其中17个页面上有不同的数据。我需要将它加载到17个不同的表,因为每个表包含不同的列。请帮我提出任何建议。
答案 0 :(得分:1)
您想将17个不同的Excel文件加载到17个不同的表中吗? (如在不同的领域,不同的数据类型)那么你需要17个数据流。忘记For Next循环。
如果Excel文件非常相似并且它们进入一个表格,则可能值得使用For Each和一些脚本。
答案 1 :(得分: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调用存储过程。编辑此代码并将其放在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"