在一个sql server上你可以这样upate A表 set 字段1=b.字段1
 from A表 a, B表 b
 where a.字段X=b.字段X但是在远程(服务器A)和本地SQL(服务器B)能像如下这样update?upate 服务器A.库1.dbo.A表 set 字段1=b.字段1
 from 服务器A.库1.dbo.A表 a, 服务器b.库1.dbo.B表 b
 where a.字段X=b.字段X我想即使语法没问题,效率也是严重问题请大家高见!!!谢谢

解决方案 »

  1.   

    可以把SQL语句当成文本上传到服务器,然后再执行。
      

  2.   

    测试发现,远程update和delete都存在严重的效率问题!而insert效率不错。   我的想法是:在远程服务器(接收方)建立结构相同的中间库(表),全部需要update和delete的记录,首先上传至该库(表),然后由远程服务器执行。
      

  3.   


    可以这样来实现:upate A表 set 字段1=b.字段1
     from A表 a,OPENDATASOURCE('SQLOLEDB','Data Source=服务器名称;User ID=登录名;Password=密码') B表 b
     where a.字段X=b.字段X
      

  4.   

    可以把SQL语句当成文本上传到服务器,然后再执行。
      

  5.   

    sqlserver有双向复制功能,可以将表进行复制。
      

  6.   

    如下辦法
    若在程序中.如delphi+sql
    試放2個 adoconn(一個本地,一個遠程), 2個adoquery, 
    然後用for i=0 to recordcount...來遍歷.
    速度方面...有待測試. 請參考
      

  7.   

    你能远程登陆你的远程服务器吧?XXOO 是你愿意的随便任意名字,代表的是远程服务器
    EXEC sp_addlinkedserver   'XXOO', ' ', 'SQLOLEDB', '你远程服务器的IP';
    GO 
    EXEC sp_addlinkedsrvlogin  'XXOO', 'false',null, 'sa', 'sa';
    GO现在你就可以使用远程服务器上的表了。
    Select * from XXOO.SomeDataBase.Dbo.SomeTable用完了记得
    EXEC sp_dropserver  'XXOO', 'droplogins';注意的是:你远程数据库的远程访问必须是允许的,看看那几个系统过程的联机帮助吧。效率嘛当然跟你网速有关了
      

  8.   

    定义一接口函数,将表中一行(段)数据连同SQL语句,传到服务器报告UpDate或insert。