You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨服务器登录时无法从Excel电子表格执行SQL查询的问题

问题描述

我有一段SQL代码,用于读取Excel工作表数据并更新数据库表。平时我通过SSMS先登录公司网络服务器,再通过该连接访问数据库服务器(即客户端通过SSMS中转连接数据库),这种方式下大部分操作都正常,唯独读取Excel的SELECT语句无法运行,必须直接登录数据库服务器才行,想解决这个繁琐的问题。

能在直接登录服务器时正常运行,但远程中转连接时失效的SQL语句:

select * from 
  openrowset('Microsoft.ACE.OLEDB.12.0', 
   'Excel 12.0 Xml;Database=\\tsclient\C\Users\FRate.xlsx;',sheet1)

远程中转连接执行时收到的错误:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

解决方法

1. 问题根源

\\tsclient\C是远程桌面映射的本地客户端路径,但数据库服务器的SQL Server服务账户无法访问你本地客户端的文件系统——OPENROWSET是在数据库服务器端执行的,它会尝试让SQL Server服务去访问这个路径,而服务器根本看不到你本地的C盘映射。直接登录服务器时你是在服务器本地操作,Excel文件路径是服务器能访问的,所以正常。

2. 具体解决方案

方法一:将Excel放到服务器可访问的共享目录

  • 把本地的FRate.xlsx上传到公司网络中数据库服务器有权限读取的共享文件夹(比如\\公司文件服务器\公共数据\FRate.xlsx)
  • 修改SQL语句中的路径为这个共享路径:
select * from 
  openrowset('Microsoft.ACE.OLEDB.12.0', 
   'Excel 12.0 Xml;Database=\\公司文件服务器\公共数据\FRate.xlsx;',sheet1)
  • 确认SQL Server的服务账户(比如NT SERVICE\MSSQLSERVER)对该共享文件夹有读取权限

方法二:配置分布式查询委派(适合高频使用场景)

  • 打开SQL Server配置管理器,找到对应SQL Server服务,右键属性→登录,确认服务账户是域账户(本地系统账户无法做委派)
  • 联系域管理员,在Active Directory中给该SQL Server服务账户配置约束委派,允许它向你的客户端计算机委派权限,并勾选Microsoft.ACE.OLEDB.12.0相关服务类
  • 启用Ad Hoc分布式查询:
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
  • 配置OLEDB提供者参数:
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DisallowAdHocAccess', 0

方法三:用SSMS导入向导替代OPENROWSET

  • 打开SSMS,右键目标数据库→任务→导入数据
  • 数据源选择“Microsoft Excel”,选中本地的Excel文件,按向导步骤将数据导入到临时表,再用临时表更新目标表
  • 此方法无需修改服务器配置,适合单次或少量数据导入场景

内容的提问来源于stack exchange,提问作者TeleJim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:24:53