我正在尝试对 Excel 工作表运行 OPENROWSET 查询,如下所示:
SELECT id, SourceName
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; HDR=YES; IMEX=1; Database=D:\MyFolder\Configuration.xlsx', 'SELECT * FROM [Sheet1$]')
当我从 SSMS 执行此操作时,它可以工作。作为作业步骤的一部分,它不适用于所述错误。
我尝试过的事情:
sp_configure '显示高级选项', 1; 重新配置;GO sp_configure 'Ad Hoc 分布式查询', 1; 重新配置;去
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
将目标电子表格和文件夹的权限设置为“所有人”和“读/写”
当我转到“服务器对象”->“链接服务器”->“提供者”时,Microsoft.ACE.OLEDB.12.0 被列出,它位于 xp_enum_oledb_providers 中。
已安装 Access 数据库引擎 x64。
这是 SQL Server 2014。
任何人都可以帮忙吗?为什么当我的用户可以使用 ACE 提供程序时,SQL Server 代理却无法使用?