不能批量装载。文件“c:\data.txt”不存在

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我在将数据从文本文件读取到MS SQL时遇到了问题。我在c:\中创建了一个名为data.txt的文本文件,但由于某种原因,Sqlserver找不到该文件。我得到了“不能批量加载”的错误。文件“c:\data.txt”不存在。有什么想法吗?

数据文件(是的,我知道数据看起来很糟糕,但在现实世界中,它是如何从客户端获得的):

01-04 10.338,18 0,00 597.877,06- 5 0,7500 62,278-
06-04 91.773,00 9.949,83 679.700,23- 1 0,7500 14,160-
07-04 60.648,40 149.239,36 591.109,27- 1 0,7500 12,314-
08-04 220.173,70 213.804,37 597.478,60- 1 0,7500 12,447-
09-04 986.071,39 0,00 1.583.549,99- 3 0,7500 98,971-
12-04 836.049,00 1.325.234,79 1.094.364,20- 1 0,7500 22,799-
13-04 38.000,00 503.010,49 629.353,71- 1 0,7500 13,111-
14-04 286.400,00 840.126,50 75.627,21- 1 0,7500 1,575-

SQL:

CREATE TABLE #temp
(
    vchCol1 VARCHAR (50),
    vchCol2 VARCHAR (50),
    vchCol3 VARCHAR (50),
    vchCol4 VARCHAR (50),
    vchCol5 VARCHAR (50),
    vchCol6 VARCHAR (50),
    vchCol7 VARCHAR (50)
)

BULK insert #temp
FROM 'c:\data.txt'
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)

select * from #temp
drop table #temp
提问于
用户回答回答于

在服务器上运行,所以它在寻找C:\data.txt在服务器上C:开车。

还要确保登录具有C:的读取权限。

用户回答回答于

该文件是否位于SQLServer的C:\驱动器上??SQL大容量插入等总是有效的。在SQLServer计算机上使用本地驱动器。SQLServer无法访问自己的本地驱动器。

需要将文件放到SQLServer的C:\驱动器上,然后再试一次。

文件可以在可以使用UNC路径从SQLServer机器访问的共享上。但是,必须首先创建该共享,运行SQLServer进程的用户必须拥有对该共享的访问权限。你不能简单地从你的个人电脑上的本地驱动器抓取一个文件,而不首先设置相当多的基础设施开销。

扫码关注云+社区