现有一个数据表格式如下:
recnum numeric(9) 
riqi datetime(8)
line_num char(10)
.
.
ave_current float(8)
.
.
over3ma  int(4)
.
.
clbj  bit(1)
主要问题是数据量太大,数据表(用的是SQL数据库)中有纪录5000000多行
现求一方法把数据表中的数据导出到.txt文件中,还可以把.txt内容导入相对应的数据表中

解决方案 »

  1.   

    我现在用的办法是:
    把数据表中的纪录一行一行的保存到一个String型中,然后再一行一行的写入到.txt文件中
    写入到.txt文件中的格式如下:
    589|2003-1-25 4:07:00|0002|0059|0001|0.54|0.56|0|0|-5|85|0|6.4|0.25|0|0
    从.txt导入到数据表中是这样的方法
    首先是从.txt文件读出一行行的 Readln(MyText,AssistStr),然后分解后存入到一个TStringList中,在转化成string型一行行的存入String中
    用insert into history_data  Values('+CostStr+')一行行的插入到数据表中
    这样做如果数据量小,是可以的,可是现在的数据量太大了,需要的时间很长,而且运行当中还可能出错
    请各位大侠帮帮我
      

  2.   

    godear() 谢谢你bcp实用工具 我不是很熟,可以说的详细一点吗?
      

  3.   

    bcp 实用工具
    bcp 实用工具在 Microsoft® SQL Server™ 2000 实例和数据文件之间以用户指定的格式复制数据。语法
    bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
        {in | out | queryout | format} data_file
        [-m max_errors] [-f format_file] [-e err_file]
        [-F first_row] [-L last_row] [-b batch_size]
        [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
        [-q] [-C code_page] [-t field_term] [-r row_term]
        [-i input_file] [-o output_file] [-a packet_size]
        [-S server_name[\instance_name]] [-U login_id] [-P password]
        [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]
      

  4.   

    sqlserver帮助挺好得!看看就知道了.
      

  5.   

    See SqlServer Help,
    There Tell You How To Do!
    Good Luck!!
      

  6.   

    请各位个我提供一套完整的导入,导出办法,在一个就是有没有比.txt文件更好的
      

  7.   

    一次性向數據庫中提交多筆插入語句,這樣可以提高匯入的速度例如:
    insert into tablename
      select 589,'2003-1-25 4:07:00',0002,0059,0001,0.54,0.56,0,0,-5,85,0,6.4,0.25,0,0 union
      select 590,'2003-1-25 4:07:00',0002,0059,0001,0.54,0.56,0,0,-5,85,0,6.4,0.25,0,0前面只是舉了一個例子,不一定正確,但道理是一樣的
    樓主可以試著一次性提交1000筆,或者是更多,不過對於SQL語句的長度,我還不知道有沒有這方面的限制,樓主可以試一下,盡量一次性提交多一些,從而減少數據庫編譯SQL語句所花的時間