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

Sql server 链接服务器错误:无法通过sql Server 2008读取excel 2010数据,sql-server,excel,import,Sql Server,Excel,Import,我正在尝试通过SQLServer2008从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)" ret

我正在尝试通过SQLServer2008从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工作表格式正确,路径正确。
不知道为什么它会给我一个错误。

尝试使用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$]'
)
我找到了这个解决方案:

我将现有文件保存为向后兼容,然后启动此文件:

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

不知道为什么它能工作而其他人不能,可能有人对此有好的想法。

给出以下错误:OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器(null)“返回消息“找不到可安装的ISAM”。Msg 7303,级别16,状态1,第1行无法为链接服务器(null)初始化OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。请尝试安装ACE提供程序。注意,如果您使用的是Excel版本为2007或更高版本,则此答案很好。如果是2003年或更早,您希望使用Jet连接,如在原始帖子中所述。可安装ISAM错误是因为它应该是
Extended Properties=“Excel 12.0 Xml;HDR=YES”
这是Excel 2010版本。