我的a表中有 800万 条数据,b表中有8000条数据,现在希望把a表的每一条数据,根据a表的contentID字段,从b表对应的contentID,并将b表中的contentName添加到a表中。
我用的是dataset,就是取出select * from a,赋值到dataset1中。
结果是这个过程非常长,并且出错,提醒我“引发类型为“System.OutOfMemoryException”的异常。”
是这个数据集太大了么?
我应该用什么办法来处理大数据量的数据集呢?
小女子谢过~~

解决方案 »

  1.   

    建议用循环的方式,分批更新set rowcount 1000
    while @@rowcount>0
    update .....set rowcount 0
      

  2.   

    select a.*,b.contentName from a left join b on a.contentID=b.contentID
      

  3.   

    update a set contentName=b.contentName 
    from A表 a join B表 b on a.contentID=b.contentID
      

  4.   

    你是在查询分析器中操作还是在asp?或者.net中哦
    如果是sql-server查询分析器
    update a,b set a.自定义列1=b.contentName from a,b where a.ContentID=b.ContentID
      

  5.   

    首先,800万条数据是一个很大的数据量,使用dataset肯定搞不定。建议使用SQL Server自己的环境连上去直接用SQL,不过这个也需要很长时间,毕竟每条数据都要update,你要做好跑上几个小时的心理准备。
      

  6.   

    你好 我没有说明白 我是在.net中,进行操作,.net中有DataSet,提示错误是估计是DataSet装不下800万条数据的原因
      

  7.   

    你可以把执行操作放在SQL-server数据库的存储过程中嘛。再说又不是800万条每条都update你只是把符合条件的用来做而已。应该能解决你的问题。用什么dataset是多余的
      

  8.   

    存成存储过程,然后。net中调用你的存储过程不就可以了。