代码之家  ›  专栏  ›  技术社区  ›  Daniel Brink

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

  •  18
  • Daniel Brink  · 技术社区  · 16 年前

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

    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 回复  |  直到 16 年前
        1
  •  49
  •   Alex K.    16 年前

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

    还要确保您使用的登录在C:上具有读取权限。

        2
  •  13
  •   marc_s MisterSmith    10 年前

    这个文件在SQL Server的C:\驱动器上吗??SQL批量插入等始终有效 只有 在SQL Server计算机上使用本地驱动器。您的SQL Server无法访问您自己的本地驱动器。

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

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

        3
  •  0
  •   Abde    9 年前

    这主要是权限问题。你可能没有那个驱动器的权限。确保您使用的登录具有读取权限或完全控制权限(如果可能)。它在本地机器上为我工作。