批量插入返回错误,"文件无法打开"

时间:2018-05-01 07:36:06

标签: sql-server

我在SQL Server 11.0中运行以下查询。

BULK INSERT [dbo].[Andy] FROM "Y:\users\joe\APP data main file.csv"
              WITH (FIRSTROW = 2, FIELDTERMINATOR = ',' ,
              ROWTERMINATOR = '\n', TABLOCK)

该命令返回错误

  

无法批量加载,因为文件" Y:\ users \ joe \ APP数据主要   FILE.CSV"不能打开。操作系统错误代码3(   系统找不到指定的路径。)。

在线研究此错误的原因是,批量插入任务通过从目标SQL服务器执行批量插入命令来加载文件来运行。这意味着目标SQL Server的SQL Server代理应该对我尝试加载的文件具有权限。 如何判断是否有效?

其次,根据微软的网站,“...如果SQL Server用户使用Windows身份验证登录,则用户只能读取用户帐户可以访问的文件,无论SQL Server进程的安全配置文件如何。”

我使用Windows身份验证登录SQL Server。通过MS网站上的定义,我可以访问我想要插入的文件。我创建了它,我可以打开它。更具体地说,我登录的Windows帐户(我自己)是创建csv文件的帐户,是我打开SQL Server的帐户。然而错误就在那里。有一些我想念的东西,但我不知道它是什么。

最后,我是否使用UNC路径访问文件或驱动器映射无关紧要。

2 个答案:

答案 0 :(得分:0)

看起来该文件位于网络服务器上,您正在引用映射的驱动器名称,请尝试使用UNC网络路径。

答案 1 :(得分:0)

我收到了来自我的IT部门的关于这个问题的电子邮件:

  

我认为问题在于您被分配到基于的服务器角色   您已分配给的用户策略组 - 这将是   通过网络与特定服务器角色对应   管理员和此服务器角色无权访问该文件   无论出于何种原因。您可以访问服务器路径   你自己,因为你目前被分配到另一个组   但如果该组与服务器角色不对应,则为服务器   角色无法访问。

所以我们拥有它。自那以后我发现由于操作原因无法批量上传,所以我不会再继续这样做了。

感谢大家的帮助。