1: 至少你可以只循环 try{}catch(){} 这一段,不用循环上面的连接句柄。
2:真要循环写吗?
3:修改数据时没有索引会更好。

解决方案 »

  1.   

    将要添加的记录写在文本文件中,用导入的方法处理:insert into 表
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Text;HDR=NO;DATABASE=C:\'  --c:\是文件目录
    ,aa#txt)                     --aa#txt是文件aa.txt
      

  2.   

    楼主应该是使用准备语句吗?或用存储过程看看?
    一次插多条记录:insert 表 select 1,234,'234',657 union all select 2,3234,'245sd34',4657 union all
    select 3,234,'2ff34',23657这样应该是原来速度的3倍
      

  3.   

    C/S的可以写在ACCESS数据库中.然后用ADO连接ACCESS数据库,执行查询往SQL中写数据
      

  4.   

    我要做的是从一个数据库A中把数据转到另一个数据库B中:
    从A中读一条记录 -- 处理 ---形成Insert语句添加到B中;
    问题是每条记录都必须处理,我想是不是可以先将数据都处理好,放在什么缓存中,再一次性或尽量少次数把数据写到数据库中?
      

  5.   

    To :
     pengdali(大力 V3.0):
    一次添加多条记录时,如果添加的某一条记录有错误,会怎么样呢?
      

  6.   

    那直接插入不就行了吗?SQL-->SQL
    --同一服务器的情况
    insert into 数据库名..表 select * from  另一数据库名..表名
      

  7.   

    --不同服务器操作,在接收数据的服务器上操作--创建链接服务器(因为数据量大,所以用链接服务器)
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','密码'
    go--然后用下面的语句导入表
    insert into 表 select * from srv_lnk.数据库名.dbo.表名go
    --完成后删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'
      

  8.   

    zjcxc(邹建) :
    不是简单地转,每条记录都必须处理后再转
      

  9.   

    SQL语句本身也可以做一些处理啊.不过,你说得不充分,也不好说.