我需要将excel文件中的所有值都放到SQL Server 2005中的临时/物理表中。我不需要导入导出方法。我尝试了以下链接服务器方法:
SELECT *
INTO db1.dbo.table1
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\renju.xls',
'SELECT * FROM [sheet1$]')
但它正在回复错误:
OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”返回消息“无法找到可安装的ISAM。”。
我正在使用Excel 2003,而且我已经为“Microsoft.Jet.OLEDB.4.0”添加了链接服务器。
答案 0 :(得分:0)
我会尝试安装/重新安装Microsoft数据访问组件(MDAC):
答案 1 :(得分:0)
Integration Services / SSIS导入和导出向导。
答案 2 :(得分:0)
如果您设置了链接服务器,则可以使用以下语法:
select * from openquery(LinkedServerName, 'select * from [Sheet1$]')
答案 3 :(得分:0)
我认为不应该为此创建table1,并且table1将具有与excel表相同的列。这就是你想要的吗?
如果尚未修复,可以尝试使用OpenDataSource。它在性能上比OpenRowSet慢一点:
INSERT INTO db1.dbo.table1
SELECT *
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source="c:\renju.xls";
Extended properties=Excel 8.0')...Sheet1$
如果它不起作用,您还可以尝试扩展属性= Excel 5.0。