如题,将相同结构数据库中的【某字段】的内容复制到另一个数据库里面?
因为复制的那条内容在将要复制到的数据库中已经有记录了,只是需要覆盖掉一个不同的字段,请问如何实现?

解决方案 »

  1.   

    update b
    set b.字段=a.字段
    from 表名 a inenr join [dbname].[架构名(默认为dbo)].[表名] b on a.xx=b.xx
    where 子句
      

  2.   

    要复制的字段是passwd 、字段是users 如你的答案是不是这样?
    update users_b set passwd_b=passwd_a from users_b a inenr join  [dbname].[dbo].[users_a] users_a on passwd_a=passwd_b我把A的复制到B的字段和表名称都相同的
      

  3.   

    如果是两个数据库是在一个服务器,按照一楼的SQL语句可以实现楼主的要求
    一楼有一个错的地方:
    update b
    set b.字段=a.字段
    from [dbname].[架构名(默认为dbo)].表名 a inenr join [表名] b on a.xx=b.xx
    where 子句在b所在数据库里面执行,那么就要标明a表所在的数据库如果是两个数据库不在同一个服务器,在数据库名的前面,加上OPENDATASOURCE
    如:
    update b
    set b.字段=a.字段
    from OPENDATASOURCE('SQLOLEDB','Data Source=XXX;User ID=XXX;Password=XXX'
    ).[dbname].[架构名(默认为dbo)].表名 a inenr join [表名] b on a.xx=b.xx
    where 子句
      

  4.   

    前面的inenr join 
    写错了
    应为:inner join 
    例子: id,name,sex为表的字段,有多少个字段就加上去吧,id为主键,不能复制
    update b
    set b.name=a.name,b.sex=a.sex
    from [MyDb].[dbo].tbl1 a inner join [tbl2] b on a.ID=b.ID
    --where 子句
      

  5.   

    dbname是a表所在的数据库的名字,如果a表和b表的字段名完全一样,on条件要加上表名,如on a.ID=B.ID