我是从access数据库导入数据到sql数据库的!用的是vs2008!当我导入50W数据,可以成功!可是当数据量达到100W时就会——引发类型为“System.OutOfMemoryException”的异常。查了下是内存溢出!所以想执行分批查询插入!可是我access的字段里面没有类似主键的字段,所以我不知道改怎样执行分批查询!我手动添加了个自增Id,可是插入2W数据都会崩溃,哪位高手可以指点指点,给我代码也可、、谢谢!

解决方案 »

  1.   

    不过access没有64位的驱动,你只有1000条一导入了
      

  2.   

    我觉得只能创建临时表 设置自增ID
    然后
    SELECT TOP 页大小 *
    FROM table1
    WHERE id NOT IN
              (
              SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
              )
    ORDER BY id
      

  3.   

    50万的数据 你用access??? 看见小女子,我就进来了!
      

  4.   

    把要查询的数据分批分块加载到内存中构造成datatable,然后导出成sql server
      

  5.   

    我现在的问题是不知道怎么分批!access没有主键!
      

  6.   

    access是可以设置主键的!!
      

  7.   


    我的意思是我的access没有主键!这个表不是我设计的!明白?
      

  8.   

    在程序中模似存储过程分页将access数据分批查寻出并立马插入sql。
      

  9.   

    可以加查询条件实现分批,如
    SELECT * FROM into SQL里的表名
    OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="G:\test.mdb";User ID=Admin;Password=')...mdb表名 where left(字段名,1)<='XXX' and left(字段名,1)>'YYY'