怎么在你程序中没看到执行SQL的语句?应在AddStrings(tlist)后加ADOQuery1.ExecSQL;这句。然后才是提交,否则你开始事务后,又不执行SQL。

解决方案 »

  1.   

    把10万减少到100条,会如何?
    sqlsever管理器的查询工具执行这10万条insert,会如何?
      

  2.   

    一次10万条的INSERT,锁住或卡死很正常,
    我倒是建议你做个循环,那怕是循环10万次一个INSERT,我觉得也比一次10万个INSERT好,速度上肯定会慢,但几乎没有风险。
      

  3.   

    adoquery.connection.开始事务/提交事务/回滚事务
      

  4.   

    你的代码里根本就没有执行sql的代码,adoquery.sql.addstrings(tlist);这句就挂掉了吧。
      

  5.   

    尽量保证在事务中处理的事项所用时间越少越好。
    针对LZ的问题,把多条INSERT SQL合并为一条
      

  6.   

    弱弱问一句,不加执行语句可以吗?
    adoquery.execsql
      

  7.   

    这个MSsQL 用个存储过程来完成你的那个功能  事务交给数据库,目前你的这个 Select * from tb with(nolock
    ) 这样写试试