none
BULK INSERT 使用的疑问?? RRS feed

  • 问题

  • 小弟目前在尝试将大量的数据存在txt文件利用BULK INSERT 语法将数据导入到
    Sql 2008R2中

    可是我不太了解这个语法该怎么使用才好 我将实际的状况图发给大家看看

    以上是我的txt和我建立的表  问题来了我该如何将这个txt文件的数据导入到SQL的表里面呢?

     

    我尝试性的写了一些语法  不过却抱错  所以还是请教各位大侠这个语法该怎么写才对呢?

     

    alter database 颜色数据库
    set RECOVERY BULK_LOGGED
    Bulk insert 图像数据表
    from 'C:\Users\tom\Desktop\Images\2.txt'
    with
    (
    batchsize =100,
    FIRSTROW = 1,
       LASTROW = 462,
       FIELDTERMINATOR = '\t',
        ROWTERMINATOR = '\n',
        TABLOCK
    )
    alter database 颜色数据库
    set RECOVERY FULL

    錯誤訊息:

    讯息4832,层级16,状态1,行3
    大量加载: 资料文件中发现未预期的文件尾。
    讯息7399,层级16,状态1,行3
    连结服务器"(null)" 的OLE DB 提供者"BULK" 报告了错误。提供者并未给予任何关于错误的信息。
    讯息7330,层级16,状态2,行3
    无法从连结服务器"(null)" 的OLE DB 提供者"BULK" 提取数据列。

    2013年1月1日 9:58

答案

  • 语法没错。数据文件可能和你预期的不一样。比如分隔符是不是Tab,从图片上看不出来那是Tab还是空格。

    换行符可能是\n,也可能是\r或者\r\n。还有就是列数是不是和表里面一致。

    数据文件是你生成的吗?把列名和冒号去掉。如果你要导入数据文件中的ID,加上KEEPIDENTITY 。


    想不想时已是想,不如不想都不想。

    • 已标记为答案 向恩 2013年1月2日 5:00
    2013年1月1日 14:30
    版主
  • 我将记事本改成如下 一个数值就空一格

    然後將語法改成如下:

    alter database 颜色数据库
    set RECOVERY BULK_LOGGED
    Bulk insert 图像数据表
    from 'C:\Users\tom\Desktop\Images\3.txt'
    with
    (
    batchsize =10000,
       FIELDTERMINATOR = ' ',
        ROWTERMINATOR = '\n',
        TABLOCK
    )
    alter database 颜色数据库
    set RECOVERY FULL
    

    • 已标记为答案 向恩 2013年1月2日 5:00
    2013年1月2日 4:59

全部回复

  • 语法没错。数据文件可能和你预期的不一样。比如分隔符是不是Tab,从图片上看不出来那是Tab还是空格。

    换行符可能是\n,也可能是\r或者\r\n。还有就是列数是不是和表里面一致。

    数据文件是你生成的吗?把列名和冒号去掉。如果你要导入数据文件中的ID,加上KEEPIDENTITY 。


    想不想时已是想,不如不想都不想。

    • 已标记为答案 向恩 2013年1月2日 5:00
    2013年1月1日 14:30
    版主
  • 我将记事本改成如下 一个数值就空一格

    然後將語法改成如下:

    alter database 颜色数据库
    set RECOVERY BULK_LOGGED
    Bulk insert 图像数据表
    from 'C:\Users\tom\Desktop\Images\3.txt'
    with
    (
    batchsize =10000,
       FIELDTERMINATOR = ' ',
        ROWTERMINATOR = '\n',
        TABLOCK
    )
    alter database 颜色数据库
    set RECOVERY FULL
    

    • 已标记为答案 向恩 2013年1月2日 5:00
    2013年1月2日 4:59