mssql sqlserver sql update关键字的四种用法分享


下文通过举例的方式分享update关键字的四种用法,如下所示:
实验环境:sql server 2008 R2


update 关键字常见的更新方式:
1. 单表update
2. 多表关联update

例:
测试对象:
订单表A (keyId primary key,billNo,info,note)
订单表B (keyId primary key,billNo,extendInfo)

-- 1.1 单表update单字段
update A  a set a.info = 'test' where a.keyId = '3';

-- 1.2 单表update多字段
update A a set a.info = 'test', a.note = '备注信息' where a.keyId = '8';

/*
  多表关联update 更新,需使用exists进行存在性判断
  避免无法关联到数据的表,被置为null 
*/
-- 2.1 多表关联update单字段
update B b set b.extendInfo = (select a.info from a a where a.keyId = b.keyId)
where exists(select 1 from stu1 t2 where t2.ID = t.ID);

-- 2.2 多表关联update多字段
update a left join b on a.keyId = b.keyId set a.info = '多表更新',b.extendInfo='多表更新'  
 where a.keyId =8 


同时更新多字段注意事项:
同时对不同表中的字段进行同时更新时,需注意表之间必须存在关联,如上2.2所示