将数据从 Excel sheet 提取到多个 SQL 服务器表
Extract data from Excel sheet to multiple SQL Server tables
我有一个 Excel 文件,其中包含几列 (20) 和一些我需要上传到 4 SQL 服务器 table 的数据。 table 是相关的,特定的列代表我每个 table.
的 id
是否有 ETL 工具可用于自动执行此过程?
此查询使用 bulk insert
将文件存储在 #temptable
然后将此临时 table 中的内容插入到数据库中您想要的 table 中,但是要导入的文件是 .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"
我有一个 Excel 文件,其中包含几列 (20) 和一些我需要上传到 4 SQL 服务器 table 的数据。 table 是相关的,特定的列代表我每个 table.
的 id是否有 ETL 工具可用于自动执行此过程?
此查询使用 bulk insert
将文件存储在 #temptable
然后将此临时 table 中的内容插入到数据库中您想要的 table 中,但是要导入的文件是 .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"