假如我有个文本存储了大量的信息,如下:
学号 姓名 毛概 数值 数据 Matlable 英语 C++ 总分 名次
074081601  aaa 71 68 61 48 67 68 383 59
074081602 bbb 90 98 86 99 77 86 536 3
074081603 ccc 73 95 77 95 75 76 491 17
074081604 ddd 60 63 76 63 68 49 379 62
074081605 eee 82 90 77 92 79 87 507 11
074081606 fff 73 89 70 88 79 69 468 29
074081607  ggg 79 80 70 92 76 78 475 24
074081608  hhh 80 85 68 88 77 81 479 22
074081609  iii 60 71 83 73 64 60 411 55
0740816011 jjj 79 78 63 81 72 87 460 30
0740816012 kkk 80 61 68 47 72 42 370 67
0740816013 lll 64 66 70 87 68 81 436 41
......(部分和名次应该先不插入,由以后的计算来得到)
我用的是sql sever 2008,在网上找了半天没找到我能看懂的。
MySql用load data local infile "D:\pet.txt" into table ***;
sql sever下如何实现,不可能人工逐个输入吧?最好详细点,初学,好多看不懂,操作也不熟练。

解决方案 »

  1.   

    BULK INSERT 库名..表名 
    FROM 'D:\pet.txt'
    WITH ( 
    FIELDTERMINATOR = ';', 
    ROWTERMINATOR = '\n' 
      

  2.   

    http://blog.csdn.net/fredrickhu/archive/2009/09/19/4569532.aspx参考bulk insert 的用法
      

  3.   

    select * FROM OPENROWSET(BULK N'D:\pet.txt' , SINGLE_BLOB) AS Document
      

  4.   

    参考:权限
    只有 sysadmin 和 bulkadmin 固定服务器角色成员才能执行 BULK INSERT。示例
    本例从指定的数据文件中导入订单详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |\n 作为行终止符。BULK INSERT Northwind.dbo.[Order Details]
       FROM 'f:\orders\lineitem.tbl'
       WITH 
          (
             FIELDTERMINATOR = '|',
             ROWTERMINATOR = '|\n'
          )本例指定 FIRE_TRIGGERS 参数。BULK INSERT Northwind.dbo.[Order Details]
       FROM 'f:\orders\lineitem.tbl'
       WITH
         (
            FIELDTERMINATOR = '|',
            ROWTERMINATOR = ':\n',
            FIRE_TRIGGERS
          )
      

  5.   

    sqlldr比较好用。用法如下:
    编辑文件loader.ctlload data
    infile 'tmp.txt'
    into table tmp
    fields terminated by " "
    ( tmp表的列名1,列名2)tmp.txt为数据文件
    sqlldr user/password control=loader.ctl
      

  6.   

    Bulk insert MyTest..成绩单 from 'D:\pet.txt' 
    with(
    FIELDTERMINATOR = ' ',
    ROWTERMINATOR = '\n'
    )
    go
    然后错误提示:
    消息 4832,级别 16,状态 1,第 1 行
    Bulk load: An unexpected end of file was encountered in the data file.
    消息 7399,级别 16,状态 1,第 1 行
    The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
    消息 7330,级别 16,状态 2,第 1 行
    Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
    怎么办啊?急,搞了我一下午了。
      

  7.   

    DTS导入工具也行,
    BCP
    BULK INSERT
      

  8.   

    实在不行就读文本,一行一样读到String里面
    空格Split下,插入数据库。