1- 如果您使用的是 32 位版本的 Windows,请安装 AccessDatabaseEngine_x64.exe 或 AccessDatabaseEngine.exe(需要重新启动)。
2- 如果您使用的是 SQL Management Studio,请以管理员身份运行 Management Studio。如果您不以管理员帐户运行它,则会出现此错误(无法为链接服务器“(null)”初始化 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 并查看您是否有权访问此目录。