update y
set shjg=x.shjg,shrq=x.shrq,shry=x.shry
from a..a1 x,b..b1 y
where x.id=y.id

解决方案 »

  1.   

    如果需要导入a1有b1没有的记录,加:insert b..b1(id,shjg,shrq,shry)
    select id,shjg,shrq,shry
    from a..a1 x
    where not exists (
    select 1 from b..b1 y
    where  x.id=y.id
    )
      

  2.   

    update b..b1 set shjg=b.shjg,shrq=b.shrq,shry=b.shry
    from b..b1 a join a..a1 b on a.id=b.id
      

  3.   

    update b.dbo.b1 set b.dbo.b1.shjg=a.dbo.a1.shjg,b.dbo.b1.shrq=a.dbo.a1.shrq,
    b.dbo.b1.shry=a.dbo.a1.shry
    from a.dbo.a1 inner join b.dbo.b1 on b.dbo.b1.id=a.dbo.a1.id
      

  4.   

    --如果数据库不在同一服务器上--如果经常访问或数据量大,建议用链接服务器--创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
    go--查询示例
    select * from srv_lnk.数据库名.dbo.表名--导入示例
    select * into 表 from srv_lnk.数据库名.dbo.表名go
    --处理完成后删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'
    --如果只是临时访问,可以直接用openrowset
    --查询示例
    select * from openrowset('sqloled'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)
    --导入示例
    select * into 表 from openrowset('sqloled'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)
      

  5.   

    1.如果在一台服務器,使用表時加上 數據庫與所有者
      引用時 數據庫.dbo.表
    2.不在同一服務器,先用樓上方法建链接服务器
      引用時加上 服務器、 數據庫與所有者
        服務器.數據庫.所有者.表再通過別名,就可象普通表一樣引用:
    update A
    set A...=B...
    from 數據庫.dbo.表 A 
    left join ....
      

  6.   

    首先你要永远记得一点,别人的数据是很重要的,一定要注意背份,否则今天能解决,有一天解决不了的时候,数据又很重要,你就要去坐牢了,
    同一台机器可以这样:
     insert into 數據庫.dbo.表 A(字段) select 字段 from 數據庫.dbo.表 B
     不同机器用zjcxc(: 邹建 :) 就可以,方法不错。
      

  7.   

    呵呵,谢谢大家,其实数据我都做了备份,就是太菜了,不知道该如何将备份的数据给更新到新的数据中来
    在些我忠心的感谢大家对我的关心与帮助,尤其感谢zjcxc(: 邹建 :) 每次我提出的问题都有他的热心帮助,谢谢!