SQL Server Management Studio 2014中:单个链接服务器能否连接5个Excel文件?
用单个链接服务器访问多个Excel文件的方法
嘿,好问题!你完全不需要为每个Excel文件单独创建链接服务器——可以通过配置一个指向文件夹的链接服务器,一次性访问该文件夹下的所有Excel文件,省掉重复创建链接服务器的麻烦。下面是具体的实现步骤和注意事项:
方法:配置链接服务器指向Excel文件所在文件夹
1. 新建链接服务器
打开SSMS 2014,展开「服务器对象」→「链接服务器」,右键选择「新建链接服务器」,按以下配置填写:
- 链接服务器:随便起个好记的名字,比如
Linked_Excel_Folder - 服务器类型:选择「其他数据源」
- 提供程序:选择
Microsoft ACE OLE DB 12.0(注意:如果你的SSMS是64位版本,必须安装64位的ACE驱动,否则会出现兼容性错误) - 产品名称:填写
Excel - 数据源:填写Excel文件所在的完整文件夹路径,比如
C:\BusinessData\ExcelReports - 提供程序字符串:填写
Excel 12.0;HDR=YES;(HDR=YES表示Excel的第一行是表头,会被识别为列名;如果没有表头就填HDR=NO)
切换到「安全性」选项卡,根据你的环境选择合适的身份验证方式:
- 如果SQL Server服务账号有访问该文件夹的权限,可以选择「登录的用户使用自己的登录名」
- 否则,选择「使用此安全上下文建立连接」,输入拥有文件夹读写权限的Windows账号和密码
2. 访问文件夹中的Excel文件
配置完成后,文件夹里的每个Excel文件都会被当作链接服务器下的一个“表”,表名规则是「文件名+$」:
- 比如文件名为
Q1_Sales.xlsx,对应的表名是Q1_Sales$ - 你可以直接用类似下面的SQL语句查询:
-- 直接查询指定Excel文件的内容 SELECT * FROM [Linked_Excel_Folder]...[Q1_Sales$] -- 或者用OPENQUERY语法(有时候兼容性更好) SELECT * FROM OPENQUERY(Linked_Excel_Folder, 'SELECT * FROM [Q1_Sales$]')
关键注意事项
- ACE驱动兼容性:64位SSMS必须搭配64位的Microsoft Access Database Engine 2010 Redistributable,32位驱动会导致链接服务器创建失败或无法访问文件
- 文件格式统一:尽量保证文件夹里的Excel文件格式一致(比如都是.xlsx,不要混着旧版的.xls),避免出现读取错误
- 权限问题:运行SQL Server服务的账号必须拥有目标文件夹的读写权限,否则会出现“无法访问路径”的错误
内容的提问来源于stack exchange,提问作者Zubair Sultan
相关产品推荐
相关产品推荐

