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

使用OPENROWSET导入Excel至SQL Server 2019 Express时遇错误求助

Excel数据导入SQL Server 2019 Express 64位报错问题

问题详情

尝试执行以下SQL语句将Excel数据导入SQL Server 2019 Express(64位):

USE DB1;
GO
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO

SELECT * INTO ContractHeader
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0; Database=D:\Users\User1\Downloads\Book1.xlsx', [Sheet1$]);
GO

执行后出现错误,且每次操作需手动启动SQL服务:

配置选项'show advanced options'已从1更改为1。请运行RECONFIGURE语句进行安装。
配置选项'Ad Hoc Distributed Queries'已从1更改为1。请运行RECONFIGURE语句进行安装。

Msg 109, Level 20, State 0, Line 8 > 从服务器接收结果时发生传输级错误。(提供程序: 共享内存提供程序, 错误: 0 - 管道已结束。)

解决步骤

1. 修复SQL服务启动问题

打开services.msc(运行中输入),找到SQL Server (SQLEXPRESS)服务:

  • 将启动类型改为自动,避免每次手动启动。
  • 确保服务当前处于运行状态,若未运行则手动启动。

2. 解决传输级错误(管道已结束)

  • 匹配ACE驱动位数:SQL Server是64位,必须安装64位版本的Microsoft Access Database Engine 2010 Redistributable,32位驱动会因位数不兼容导致连接失败。
  • 调整OPENROWSET参数:若Excel包含表头,添加HDR=YES参数,修改后的语句:
    USE DB1;
    GO
    SELECT * INTO ContractHeader
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
        'Excel 12.0 Xml; HDR=YES; Database=D:\Users\User1\Downloads\Book1.xlsx', [Sheet1$]);
    
  • 检查文件权限:确保SQL Server服务账户对Excel文件及所在目录有读取权限,可临时将文件移至C:\Temp等权限开放的目录测试。

3. 处理配置选项提示

提示中显示配置选项本来就是1(已启用),无需重复执行sp_configure和RECONFIGURE语句,后续直接执行导入语句即可。

4. 替代导入方案(若OPENROWSET仍失败)

使用SQL Server导入导出向导:

  • 在SSMS中右键目标数据库DB1,选择任务→导入数据。
  • 数据源选择Microsoft Excel,指定目标文件,按向导步骤完成导入,该方式兼容性更强,操作更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:00:10