用OPENROWSET试一下:
select * from OPENROWSET('SQLOLEDB',
'SERVER=IP地址;uid=sa;pwd=;Database=数据库','select * from 表名') as table......

解决方案 »

  1.   

    简单的话可以按"冷雪"的办法
    也可以创建链接服务器,或者用"子陌红尘"的办法,利用SQL的复制功能
    不过如果只是一个表的同步,不必用复制功能
      

  2.   

    --创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','SQL服务名'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户','密码'
    gocreate trigger tri_test
    on 表 
    for insert,update,delete
    as
    begin
        delete srv_lnk.数据库.dbo.表 from srv_lnk.数据库.dbo.表 a,deleted b where a.标识列=b.标识列   
        insert into srv_lnk.数据库.dbo.表 select * from inserted
    end
    go
      

  3.   

    sp_addlinkedserver  
     sp_addlinkedsrvlogin
    用這兩個系統存儲過程,
    其具體的說明可以看聯機幫助。
      

  4.   

    你指的同步具体意思是?一个为主体保持另外一个跟主体表同步还是两个表的修改都需要互相同步?第一种方法采用同步复制的快照复制和事务复制都可以第一种可以采用合并复制,不过合并复制要设定冲突解决方案,也就是一个表变更了一条记录,还没来得及复制到另外一个表,另外表的这个条记录又有新的变更,这个时候就产生了冲突,需要制定一种冲突的解决方案.或者你可以自己写触发器来实现复制的逻辑,不过要注意循环复制,防止复制到B表的数据触发trigger又复制回A表
      

  5.   

    --创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','SQL服务名'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户','密码'
    gocreate trigger tri_test
    on 表 
    for insert,update,delete
    as
    begin
        delete srv_lnk.数据库.dbo.表 from srv_lnk.数据库.dbo.表 a,deleted b where a.标识列=b.标识列   
        insert into srv_lnk.数据库.dbo.表 select * from inserted
    end
    go
      

  6.   

    用SQL自带的发布和订阅功能
    1.不同的主机也可以;从A机分发给B机,有两种方法:一种是请求订阅,一种是强制订阅;如果AB两机的数据要实时同步,可以选择强制订阅,这样在A机更新后会自动向B机更新;
    具体设置时:A机可以作为发布/分发服务器,B机作为订阅服务器2.distribution数据库是分发数据库4.按设定时间执行数据库间的复制操作5.服务器需要实时数据时,最好使用事务发布(不过这个选项只有在SQL2000 服务器版中才有,楼主安装时要注意)参考下面的帖子:
    http://community.csdn.net/Expert/topic/4150/4150172.xml?temp=.2713129http://community.csdn.net/Expert/topic/4150/4150172.xml?temp=.2713129
    http://community.csdn.net/Expert/topic/4276/4276288.xml?temp=.5837519