链接服务器错误:无法通过sql server 2008读取excel 2010数据

时间:2013-07-18 19:21:43

标签: sql-server excel import

我正在尝试通过SQL Server 2008从excel文件中读取数据。

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
      'Excel 8.0;Database=C:\Hierarchy.xlsx',
      'SELECT * FROM [Group$]')

它给了我一个奇怪的错误:

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)". 

Excel工作表格式正确,路径正确。 不知道为什么它会给我一个错误。

2 个答案:

答案 0 :(得分:1)

我找到了这个解决方案:

我以向后兼容性保存现有文件,然后触发此文件:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0;HDR=NO;Database=D:\Hierarchy.xls;', 
[Group$])

不知道为什么会有效,而其他人则不知道,可能有人对此有所了解。

答案 1 :(得分:0)

尝试使用ACE OleDB和excel 12.0版本

示例:

SELECT * FROM 
OPENROWSET
(           

        'Microsoft.ACE.OLEDB.12.0',
        'Data Source=C:\Hierarchy.xlsx;Extended Properties="Excel 12.0;HDR=YES"', 
        'SELECT * FROM [Group$]'
)