27,579
社区成员
发帖
与我相关
我的任务
分享
--create database A
--go
use A
go
if object_id('A') is null
create table a(a1 nvarchar(20),a2 nvarchar(20),num nvarchar(20),status nvarchar(20))
go
delete from a
insert into a values('xx','yy','3','P')
select * from a
go
--create database B
--go
use B
go
if object_id('B') is null
create table B(a1 nvarchar(20),a2 nvarchar(20),num nvarchar(20),status nvarchar(20))
go
delete from b
insert into B
select 'xx', 'yy', '1', 'S' union all select
'xx', 'yy', '2', 'Q' union all select
'xx', 'yy', '3', 'T'
go
select * from B
update B..b set B..b.status=A..a.status from A..a inner join B..b on A..a.a1 = B..b.a1 AND A..a.a2 = B..b.a2 And A..a.num=B..b.num
update B..b set B..b.status=A..a.status from A..a inner join B..b on A..a.a1 = B..b.a1 AND A..a.a2 = B..b.a2 And A..a.num=B..b.num
update B..b set B..b.status=A..a.status from A..a inner join B..b on A..a.a1 = B..b.a1 AND A..a.a2 = B..b.a2 And A..a.num=B..b.num
if object_ID('ta') IS NOT NULL DROP TABLE ta
go
create table ta(a1 varchar(10), a2 varchar(10), num varchar(10), status varchar(10))
go
insert ta select
'xx', 'yy', 3, 'P' union all select
'sa', 'pwd', 4, 'sa'
if object_ID('tb') IS NOT NULL DROP TABLE tb
go
create table tb(a1 varchar(10), a2 varchar(10), num varchar(10), status varchar(10))
go
insert tb select
'xx', 'yy', 1, 'S' union all select
'xx', 'yy', 2, 'Q' union all select
'xx', 'yy', 3, 'T' union all select
'sa', 'pwd', 1, 'da' union all select
'sa', 'pwd', 2, 'sf' union all select
'sa', 'pwd', 3, 'g' union all select
'qq', 'pwd', 3, 'g' union all select
'sa', 'pwd', 4, 't'
update tb
set status=case when b.num=a.num then a.status else '' end
from tb b,ta a
where a.a1=b.a1 and a.a2=b.a2
select * from tb
a1 a2 num status
---------- ---------- ---------- ----------
xx yy 1
xx yy 2
xx yy 3 P
sa pwd 1
sa pwd 2
sa pwd 3
qq pwd 3 g ---这一条不更新
sa pwd 4 sa
(8 行受影响)