将Excel导出到sql server临时表

时间:2009-07-20 12:30:03

标签: sql-server

我需要将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”添加了链接服务器。

4 个答案:

答案 0 :(得分:0)

我会尝试安装/重新安装Microsoft数据访问组件(MDAC):

http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en

答案 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。