使用OPENROWSET导入Excel至SQL Server遇OLE DB路径无效错误求助
解决Excel导入SQL Server时的路径错误与OLEDB初始化问题
1. 修复文件路径错误
你的错误提示显示路径被解析为C:\Windows\system32\Users\Desktop\...,核心问题出在路径格式:
- 原始查询里的
C:Users\缺少根目录后的反斜杠,需改为C:\Users\ - 路径未包含你的Windows账户用户名,正确格式应为
C:\Users\你的实际用户名\Desktop\Folder_name\Update_File.xlsx
注意:如果SQL Server运行在远程服务器上,路径必须是服务器本地路径或服务器可访问的网络共享路径,而非你本地客户端的路径。
2. 验证并配置ACE OLEDB组件
- 安装对应版本的Microsoft Access Database Engine:
若SQL Server是64位,安装64位ACE组件;32位SQL则安装32位版本(不可同时安装两个版本,会引发冲突) - 启用OLEDB提供程序的必要属性,执行以下SQL命令:
EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.12.0', 'AllowInProcess', 1; EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.12.0', 'DynamicParameters', 1;
3. 确保SQL Server服务账户有文件访问权限
SQL Server默认运行在系统账户(如NT SERVICE\MSSQLSERVER)下,这类账户通常无权限访问个人Desktop文件夹:
- 可将Excel文件移至公共文件夹(如
C:\SQLImportFiles\),并给该文件夹添加SQL服务账户的读取权限 - 若使用网络共享,确保共享路径配置了服务账户的访问权限,路径格式为
\\服务器名\共享文件夹\Update_File.xlsx
4. 修正后的查询示例
Select * Into EXCEL_IMPORT FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; Database=C:\Users\YourActualUsername\Desktop\Folder_name\Update_File.xlsx; HDR=YES; IMEX=1', 'SELECT * FROM [Sheet1$]');
内容的提问来源于stack exchange,提问作者AlexandraStk
相关产品推荐
相关产品推荐

