我在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路径访问文件或驱动器映射无关紧要。
答案 0 :(得分:0)
看起来该文件位于网络服务器上,您正在引用映射的驱动器名称,请尝试使用UNC网络路径。
答案 1 :(得分:0)
我收到了来自我的IT部门的关于这个问题的电子邮件:
我认为问题在于您被分配到基于的服务器角色 您已分配给的用户策略组 - 这将是 通过网络与特定服务器角色对应 管理员和此服务器角色无权访问该文件 无论出于何种原因。您可以访问服务器路径 你自己,因为你目前被分配到另一个组 但如果该组与服务器角色不对应,则为服务器 角色无法访问。
所以我们拥有它。自那以后我发现由于操作原因无法批量上传,所以我不会再继续这样做了。
感谢大家的帮助。