<b>sql update语句的多表更新试验</b>[MSSQL防范]
本文“<b>sql update语句的多表更新试验</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
sql update语句,可以实现对多表更新,下面就为您具体介绍该办法,供您参考,但愿对您学习sql update语句可以有些许帮忙.
受access的sql语句的影响,一向习惯的是用 update (衔接表) set ... where ...,害处是写起来很复杂,别名一大堆,过后自己都看不懂.
发现还其实可以直接便可以对多表更新
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1
作一些试验:
x1表:
t1 t2 f_id
a 1
b 2
c 3
a 4
b 5
c 6
x2表
t1 t2 f_id
a 7
b 8
c 9
试验1:
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1
后果:x1表中6行都被更新了.(最少是左衔接的方法)
试验2:
UPDATE b
SET b.t2 = a.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1
后果为更新了三行,且数值为4,5,6.即用x1背面的三行去更新的.
试验3:
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
后果六行全变9.
结论:用这种方法,两个表之间不是left join或right join 大概inner join,而是一种完好衔接的方法(where对全衔接的后果举行了限制).对某列的更新操作,在该列值有多行时,只有最后一行见效.
理解了工作方法,便可以斗胆利用了.
以上是“<b>sql update语句的多表更新试验</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |