1

我正在尝试对 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 执行此操作时,它可以工作。作为作业步骤的一部分,它不适用于所述错误。

我尝试过的事情:

  1. sp_configure '显示高级选项', 1; 重新配置;GO sp_configure 'Ad Hoc 分布式查询', 1; 重新配置;去

  2. 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

  3. 将目标电子表格和文件夹的权限设置为“所有人”和“读/写”

  4. 当我转到“服务器对象”->“链接服务器”->“提供者”时,Microsoft.ACE.OLEDB.12.0 被列出,它位于 xp_enum_oledb_providers 中。

  5. 已安装 Access 数据库引擎 x64。

这是 SQL Server 2014。

任何人都可以帮忙吗?为什么当我的用户可以使用 ACE 提供程序时,SQL Server 代理却无法使用?

4

0 回答 0