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

BULK INSERT批量插入报错:文件不存在或无访问权限求助

批量插入报错(Msg 4860)的解决办法

问题背景

执行以下SQL批量插入代码:

BULK INSERT equi2022a
FROM 'C:\Users\Someone\Documents\Processing\equi'
WITH (FORMATFILE = 'C:\Users\someone\Desktop\formatfileequi-2.txt'

触发错误提示:

Msg 4860, Level 16, State 1, Line 125
Cannot bulk load. The file "C:\Users\someone\Documents\QCEW Processing\equi" does not exist or you don't have file access rights.

已确认文件存在,尝试添加.txt后缀后问题依旧。

解决办法

  • 给SQL Server服务账号加权限
    SQL Server执行BULK INSERT时,用的是自身服务运行的账号,不是你当前登录Windows的账号。打开系统服务管理器,找到SQL Server对应的服务,查看其登录账号,给这个账号授予文件所在文件夹(包括格式文件的文件夹)的读取权限。
  • 修正路径拼写
    错误提示里的路径是C:\Users\someone\Documents\QCEW Processing\equi,但代码里写的是C:\Users\Someone\Documents\Processing\equi——注意文件夹名多了QCEW 前缀,要么改代码里的路径,要么确认实际文件夹的准确名称。
  • 改用UNC路径
    如果是远程SQL Server,本地C盘路径对服务器不可见,把文件放到共享文件夹,用\\你的电脑名称\共享文件夹名\equi这种UNC路径。就算是本地服务器,UNC路径也能规避不少权限问题。
  • 关闭占用文件的程序
    确认目标文件和格式文件没被其他程序(比如记事本、Excel)打开,文件被锁定的话SQL Server无法读取。
  • 补全SQL语法
    原代码的WITH子句最后少了一个右括号),先修正语法:
    BULK INSERT equi2022a
    FROM 'C:\Users\Someone\Documents\Processing\equi'
    WITH (FORMATFILE = 'C:\Users\someone\Desktop\formatfileequi-2.txt');
    
    语法错误可能导致后续文件读取的判断异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:55:30