无法批量加载。文件“c:\ data.txt”不存在

时间:2010-05-17 15:08:52

标签: sql bulkinsert

我在将文本文件中的数据读入ms sql时遇到问题。我在我的c:\中创建了一个文本文件,名为data.txt,但由于某种原因,ms sql server无法找到该文件。我收到错误“无法批量加载。文件”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

3 个答案:

答案 0 :(得分:39)

这是在服务器上运行的,所以它在服务器的C:\data.txt驱动器上寻找C:

同时确保您的使用登录对C:。

具有读取权限

答案 1 :(得分:10)

该文件是否在SQL Server的C:\驱动器上? SQL BULK INSERT等始终在SQL Server计算机上使用本地驱动器 。您的SQL Server无法访问您自己的本地驱动器。

您需要将文件放到SQL Server的C:\驱动器上,然后重试。

更新: @bp_,好的,正确 - 该文件位于您可以使用UNC路径从SQL Server计算机访问的共享上。但同样:必须首先创建该共享,并且运行SQL Server进程的用户必须具有该共享的访问权限。您不能简单地从PC上的本地驱动器中获取文件,而无需先设置相当多的基础架构开销

答案 2 :(得分:0)

这主要是许可问题。您可能没有该驱动器的许可。确保您使用的登录已读取或可能的完全控制权限。它在我的本地机器上工作。