数据库SQL语句的update如何使用?关联表更新?

2025-12-17 01:24:12

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    

);

数据库SQL语句的update如何使用?关联表更新?

2、创建另外一个临时表,用于演示如何将一个临时表的数据更新到另外一个临时表

IF OBJECT_ID('tempdb..#tblTotal') IS NOT NULL DROP TABLE #tblTotal; 

CREATE TABLE #tblTotal(

    Code varchar(50),        

    Total int   

);

数据库SQL语句的update如何使用?关联表更新?

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');

数据库SQL语句的update如何使用?关联表更新?

4、查询临时表中的测试数据

select * from #tblUpdate;

select * from #tblTotal;

数据库SQL语句的update如何使用?关联表更新?

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

update #tblUpdate

set Total = Num * Price

数据库SQL语句的update如何使用?关联表更新?

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

select * from #tblUpdate;

数据库SQL语句的update如何使用?关联表更新?

7、如果要将临时表#tblUpdate的total栏位值,更新到临时表#tblTotal对应的total栏位,就可以使用下面的方式

update t

set t.Total = u.Total

from #tblTotal t

left join #tblUpdate u on u.Code = t.Code

数据库SQL语句的update如何使用?关联表更新?

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

select * from #tblUpdate;

select * from #tblTotal;

数据库SQL语句的update如何使用?关联表更新?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢