我不想 从一个库里面查询,然后循环插入另一个库,我想直接查询插入,象这样:adoconnection1连接一个sql库,
然后 通过
ADOConnection1.Execute('SELECT * into test1 FROM test IN [Provider=SQLOLEDB.1;UID=sa;PWD=yhkyweb;Server=webserver;DataBase=a;]');为什么不行? 有什么好办法没有?

解决方案 »

  1.   

    insert * into table2 from talbe1
      

  2.   

    如果你用的ADO就可以这样啊。
    用两个adoconnection1分别连接两个库。
    然后再用两个ADOQuery分别对应adoconnection1
    一个查询。一个插不就行了。
      

  3.   

    ADOConnection1.Execute('insert into test1 select *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=ServerName;User ID=UID;Password=PSD'
             ).Databasename.dbo.test
      

  4.   

    完整语句:
    ADOConnection1.Execute('insert into test1 select *
    FROM      OPENDATASOURCE(
             ''SQLOLEDB'',
             ''Data Source=ServerName;User ID=UID;Password=PSD''
             ).Databasename.dbo.test');
      

  5.   

    用sp_addserver 先增加一个sql服务器到本地, 然后你可以用:
    insert into t1 from (select * from 机器名.dbname.dbo.tablename)
    先说, 在sql7有问题, 必须是sql2000以上
      

  6.   

    rodyhd(狄克) 的方法开始也试过,不过数据量大一点之后(才2万条),就会出现连接超时!
      

  7.   

    不要指望一条SQL就把你的工作做好了。
    用DTS或写个程序来导。
    数据准确无误才最重要。
      

  8.   

    连接超时就把COMMANDTIMEOUT的属性值调大.