【问题标题】:Load Excel Data from Multiple Excel Files into Sql Server Tables将 Excel 数据从多个 Excel 文件加载到 Sql Server 表中
【发布时间】:2013-12-09 16:46:26
【问题描述】:

我正在尝试将具有多个工作表的多个 excel 文件中的数据加载到不同的 sq 服务器表中。目前我创建了一个带有 Foreach 循环容器任务的 SSIS 包,可以将多个文件中的数据加载到 1 个表中,我有多个 excel 文件,上面有 17 张不同的数据。我需要将它加载到 17 个不同的表中,因为每张表都包含不同的列。请帮我提出任何建议。

【问题讨论】:

    标签: excel sql-server-2008 ssis


    【解决方案1】:

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

    如果 Excel 文件非常相似并且它们都进入一个表,那么可能值得使用 For Each 和一些脚本。

    【讨论】:

      【解决方案2】:

      此查询使用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
      

      要自动执行此操作,您可以将上述查询放在存储过程中并使用批处理调用存储过程。编辑此代码并将其放入 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" 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 2013-04-10
        • 1970-01-01
        相关资源
        最近更新 更多