将数据从Excel导入现有表

时间:2013-01-23 21:38:20

标签: sql-server

我在SQL Server中有一个表HRTC。我想将Excel中的数据导入到此表中。但我的Excel文件没有与HRTC表匹配的所有列。无论如何我能做到吗?

我正在考虑导入向导中的内容

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
'SELECT * FROM [SheetName$]')

 select column1, column2 from HRTC

3 个答案:

答案 0 :(得分:3)

试试这个

创建临时表

Select * INTO TmpTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
'SELECT * FROM [SheetName$]')

然后使用temptable将行插入到hrtc中,任何缺少的列都将为null

INSERT INTO hrtc(column1, column2)
select col1, col2 from TmpTable

答案 1 :(得分:1)

一种简单的方法是将excel文件编写为insert语句的集合,然后在SQL Server上运行它。

此外,如果您可以将Excel文件导出为CSV文件,这通常很有用。像SQL Server Management Studio这样的工具应该有某种导入向导,您可以在其中加载CSV,选择列映射等。

答案 2 :(得分:0)

在这些情况下我经常最终做的是使用excel的CONCATENATE函数完成一些代码完成。

假设你有:

     A     B
1  foo     bar
2  test2   bar2
3  test3   bar 3

如果您需要将它们插入表格中。在C列中,您可以写:

=CONCATENATE("INSERT INTO HRTC(col, col2) VALUES('", A1, "','", B1, "')")