我用BATCHMOVE从sqlserver2000倒数据到本地的Access文件
50m的数据居然花了半小时,且cpu占用率始终为100%,用DTS只要3分钟
请问除了DTS还有什么好办法,或者对BATCHMOVE做什么设置可以快一些

解决方案 »

  1.   

    转载自碧血剑:
    告诉你一个最快的方法,用SQLServer连接DBF
    在SQLServer中执行
    SELECT * into bmk
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
     'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
    这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中,
    速度是最快的
    把压箱底的方法都告诉大家
    在Form上放一个ADOConnection,连结指向目标Access库
    比如txt文件在c:\temp\aaaa.txt
    就执行
    ADOConnection.Connected := True;
    ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');
    就一切Ok了,这个方法一定行的,我好不容易才研究出来的
    有了这两个例子,异构数据库之间导数据的问题就举一反三,迎刃而解了。把Excel导入到Access中,同txt类似
    select * into <table name> from [excel 8.0;database=<filename>].[<sheetname>$]
      

  2.   

    那比如说有个叫dataserver的sqlserver2000服务器
    类似select * into <table name> from [excel 8.0;database=<filename>].[<sheetname>$]
    的sql怎么写呢?
      

  3.   

    to: zosky(欢迎使用银行卡)可以参考一下SQL SERVER 的books online里面的opendatasource和openquery
      

  4.   

    救命啊,这一句
    adoconnection.Execute('SELECT * into e FROM  OPENDATASOURCE('+#39+'SQLOLEDB'+#39+','+#39+'Data Source=digit;User ID=sa;Password='+#39+').[log].dbo.poslog20030205');
    报错,from子句错误,单独在sqlserver查询分析器里可以运行
    在sqlserver查询分析器里运行
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="e:\db5.mdb";User ID=Admin;Password=;Extended properties=Access 8.0')...poslog200306
    报错:找不到可安装的 ISAM。
    我的系统是winxp+sp1,officexp
      

  5.   

    用JOB就可以了,为什么要BATCHMOVE,
      

  6.   

    用job也不行
    SELECT * 
    FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',
      'Data Source="e:\db.mdb";User ID=Admin;Password=;Extended properties=Access 5.0')...poslog20030206报错:找不到可安装的 ISAM
    SELECT *
       FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
        'e:\db5.mdb';'admin';'',poslog20030206)
    报错:找不到文件 'e:\db5.mdb'问题出在什么地方?文件肯定存在