如果需要导入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 )
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
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
--如果数据库不在同一服务器上--如果经常访问或数据量大,建议用链接服务器--创建链接服务器 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.表名)
1.如果在一台服務器,使用表時加上 數據庫與所有者 引用時 數據庫.dbo.表 2.不在同一服務器,先用樓上方法建链接服务器 引用時加上 服務器、 數據庫與所有者 服務器.數據庫.所有者.表再通過別名,就可象普通表一樣引用: update A set A...=B... from 數據庫.dbo.表 A left join ....
首先你要永远记得一点,别人的数据是很重要的,一定要注意背份,否则今天能解决,有一天解决不了的时候,数据又很重要,你就要去坐牢了, 同一台机器可以这样: insert into 數據庫.dbo.表 A(字段) select 字段 from 數據庫.dbo.表 B 不同机器用zjcxc(: 邹建 :) 就可以,方法不错。
select id,shjg,shrq,shry
from a..a1 x
where not exists (
select 1 from b..b1 y
where x.id=y.id
)
from b..b1 a join a..a1 b on a.id=b.id
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
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.表名)
引用時 數據庫.dbo.表
2.不在同一服務器,先用樓上方法建链接服务器
引用時加上 服務器、 數據庫與所有者
服務器.數據庫.所有者.表再通過別名,就可象普通表一樣引用:
update A
set A...=B...
from 數據庫.dbo.表 A
left join ....
同一台机器可以这样:
insert into 數據庫.dbo.表 A(字段) select 字段 from 數據庫.dbo.表 B
不同机器用zjcxc(: 邹建 :) 就可以,方法不错。
在些我忠心的感谢大家对我的关心与帮助,尤其感谢zjcxc(: 邹建 :) 每次我提出的问题都有他的热心帮助,谢谢!