【问题标题】:Extract data from Excel sheet to multiple SQL Server tables将 Excel 工作表中的数据提取到多个 SQL Server 表中
【发布时间】:2017-10-02 23:30:01
【问题描述】:

我有一个 Excel 文件,其中包含几列 (20) 和一些需要上传到 4 个 SQL Server 表中的数据。这些表是相关的,特定列代表每个表的我的 ID。

我可以使用 ETL 工具来自动执行此过程吗?

【问题讨论】:

  • 答案是肯定的——您可以使用多种工具。用谷歌搜索一下就能得到这个答案。

标签: excel ssis sql-server-2012 etl data-integration


【解决方案1】:

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

【讨论】:

  • 感谢 NT-Hero,我会试一试,看看我能走多远。
  • 我能够将数据提取到 SQL Server。使用你描述的方法,问题就可以解决。此外,我正在评估几个 ETL 工具(SSIS、Talend Studio、Jasper ETL)。不过仍在进行中。
猜你喜欢
  • 2016-12-19
  • 2012-08-03
  • 2021-11-05
  • 2012-09-14
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多