数据库SQL语句的update如何使用?关联表更新?
1、创建一个临时表,用于演示sqlserver语法中update更新修改使用方法
IF OBJECT_ID('tempdb..#tblUpdate') IS NOT NULL DROP TABLE #tblUpdate;
CREATE TABLE #tblUpdate(
Code varchar(50),
Num int,
Price int,
Total int
);

2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表
IF OBJECT_ID('tempdb..#tblTotal') IS NOT NULL DROP TABLE #tblTotal;
CREATE TABLE #tblTotal(
Code varchar(50),
Total int
);

3、往临时表中插入几行测试数据,其中的Total栏位都不插入值
insert into #tblUpdate(Code, Num, Price) values('Code1', 30, 1);
insert into #tblUpdate(Code, Num, Price) values('Code2', 40, 2);
insert into #tblTotal(Code) values('Code1');
insert into #tblTotal(Code) values('Code2');

4、查询临时表中的测试数据
select * from #tblUpdate;
select * from #tblTotal;

5、使用update更新临时表#tblUpdate中的Total结果,假设Total = num * price
update #tblUpdate
set Total = Num * Price

6、再次查询临时表#tblUpdate的结果,可以看到之前为NULL的Total列都有值了
select * from #tblUpdate;

7、如果要将临时表#tblUpdate的total栏位值,更新到临时表#tblTotal对应的total栏位,就可以使用下面的方式
update t
set t.Total = u.Total
from #tblTotal t
left join #tblUpdate u on u.Code = t.Code

8、查询更新后的结果,可以看到两个临时表中Code相同的记录,total值也相同了
select * from #tblUpdate;
select * from #tblTotal;
