我在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
答案 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, "')")