【发布时间】:2018-05-01 07:36:06
【问题描述】:
我在 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 data main file.csv" 无法打开。操作系统错误代码 3(The 系统找不到指定的路径。)。
这个错误的原因,通过在线研究,是 Bulk Insert 任务通过从目标 SQL 服务器执行 Bulk Insert 命令来加载文件来运行的。这意味着目标 SQL 服务器的 SQL Server 代理应该对我尝试加载的文件具有权限。 我怎样才能知道它是否存在?
其次,根据微软的网站,“……如果 SQL Server 用户使用 Windows 身份验证登录,则用户只能读取用户帐户可以访问的那些文件,而不管 SQL Server 进程的安全配置文件如何。”
我使用 Windows 身份验证登录 SQL Server。根据 MS 网站上的定义,我可以访问要从中插入的文件。我创建了它,我可以打开它。更具体地说,我登录的 Windows 帐户(我自己的)是创建 csv 文件的帐户,也是我打开 SQL Server 的帐户。然而错误就在那里。我缺少一些东西,但我不知道它是什么。
最后,我是使用 UNC 路径访问文件还是使用驱动器映射都没有关系。
【问题讨论】:
-
请从文件名中发出空格并尝试
-
这没什么区别,返回同样的错误。
-
转到文件资源管理器>导航到文件>右键单击文件>属性>安全选项卡>检查用户权限。
-
您能否在使用 UNC 并省略空格后更新您的错误。
-
使用ANC并省略空格后,错误变为“操作系统错误代码53(未找到网络路径。)”
标签: sql-server