mssql sqlserver 更新表 (一张表更新另一张表的列数据)


摘要:
下文讲述单表更新时,采用其它表的值更新指定表的方法
(多表联合操作-达到更新单表的母的)
分享

例:

create table A(keyIdA int identity,nameA varchar(100),name2A varchar(100))
create table B(keyIdB int identity,nameB varchar(100),name2B varchar(100))
go
/*生成数据*/
insert into A (nameA,name2A)values('A1','A11'),('A2','A22'),('A3','A33')
insert into B (nameB,name2B)values('B1','B11'),('B2','B22'),('B3','B33')
go
----方法1:
update A set A.nameA=b.nameB,A.name2A=b.name2B 
        from B where b.keyIDB= A.keyIdA
----等同于
update A set A.nameA=t.nameB,A.name2A=t.name2B 
        from B as t where t.keyIDB= A.keyIdA
    
----方法2:利用子查询进行多表更新
update A set nameA=(select top 1 nameB from B where B.keyIdB = A.keyIdA)
 where A.keyIdA in (1,2,3)
go
select * from A
select * from B 
go
truncate table A
drop table A 
truncate table B
drop table B 
mssql_sqlserver_一个数据表更新另一个数据

mssql_sqlserver_一个数据表更新另一个数据