9

我有以下查询要插入到表中

    BULK
     INSERT tblMain
     FROM 'c:\Type.txt'
     WITH
     (
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
     )
    GO

它得到消息

消息 4860,级别 16,状态 1,行 1
无法批量加载。文件“c:\Type.txt”不存在。

文件显然在那里。有什么我可能忽略的吗?

4

3 回答 3

29

看那个: 不能批量加载。文件“c:\data.txt”不存在

该文件在 SQL Server 的C:\驱动器上吗?

SQL BULK INSERT 等始终仅适用于 SQL Server 机器上的本地驱动器。您的 SQL Server 无法访问您自己的本地驱动器。

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

于 2012-04-04T18:07:07.810 回答
16

此处描述了批量导入实用程序语法

http://msdn.microsoft.com/en-us/library/ms188365.aspx

> BULK INSERT     [ database_name . [ schema_name ] . | schema_name . ]
> [ table_name | view_name ] 
>       FROM 'data_file' 
>      [ WITH 
>     (

关于 data_file 参数的注释说

'数据文件'

是包含要导入指定表或视图的数据的数据文件的完整路径。BULK INSERT 可以从磁盘(包括网络、软盘、硬盘等)导入数据。

data_file 必须指定运行 SQL Server 的服务器的有效路径。如果 data_file 是远程文件,请指定通用命名约定 (UNC) name。UNC 名称的格式为 \Systemname\ShareName\Path\FileName。例如,\SystemX\DiskZ\Sales\update.txt。

于 2012-04-05T06:09:24.203 回答
0

我以前遇到过这个问题。除了检查文件路径之外,您还需要确保引用了正确的文件名和文件类型。确保这确实是您保存在源位置的文本文件,而不是文字文件等。我被 .doc 和 .docx 绊倒了。这是我犯的一个新错误,但是嘿,它可能会发生。更改了文件类型并解决了问题。

于 2016-05-17T04:14:06.047 回答