在64位版本的Windows中运行OPENROWSET。
1-安装AccessDatabaseEngine_x64.exe(需要重新启动)。
2-如果您使用的是SQL Management Studio,请以管理员身份运行Management Studio。如果您没有以管理员帐户身份运行它,则会出现此错误(无法初始化链接服务器的OLE DB提供程序“MICROSOFT.ACE.OLEDB.12.0”的数据源对象“(null)”。
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-不要使用 'SELECT * FROM表Sheet1 $' 在OPENROWSET函数试试这个代码
select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$)
如果你仍然有(32位)错误,请尝试重新启动您的SQL服务并检查您的C:\ Windows \ Temp并查看您是否有权访问此d是否是irectory。
我安装了Microsoft Access数据库引擎2010可再发行组件之后,我更改了上面的查询,并且它对我来说工作正常。下面是已修改的查询。 SELECT * FROM OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Excel 12.0; HDR = YES; DATABASE = E:\ 01112012.xls',sheet1 $) – Simhadri 2012-01-10 22:06:34