我正在尝试在Windows 2008 64位机器上安装的SQL Server 2008 R2上使用Openrowset。当我执行以下查询时,我收到如下错误。请帮助我。
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:\01112012.xls;','SELECT * FROM [Sheet1$]')
错误:
Msg 7403,Level 16,State 1,Line 1 OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”尚未注册。
答案 0 :(得分:3)
您安装了: - > Microsoft Access Database Engine 2010 Redistributable
答案 1 :(得分:0)
在64位版本的Windows中运行OPENROWSET。
1-安装AccessDatabaseEngine_x64.exe(需要重启)。
2-如果您使用的是SQL Management Studio,请以管理员身份运行Management Studio。如果不以管理员帐户运行它,则会出现此错误(无法初始化OLE DB提供程序的数据源对象" MICROSOFT.ACE.OLEDB.12.0"对于链接服务器"(空)"
3-运行此命令以配置数据库
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE with override;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE with override;
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
4-不要在OPENROWSET函数中使用'select * from sheet1 $'。试试这段代码。
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$)
如果仍有(32位)错误,请尝试重新启动SQL服务并检查C:\ Windows \ Temp,看看是否可以访问此目录。