加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer带inner join的更新、删除

发布时间:2020-12-12 12:52:33 所属栏目:MsSql教程 来源:网络整理
导读:http://blog.163.com/zhaoyanping_1125/blog/static/201329153201209104541109/ 一、 ???????? 删除文章 5 ,级联删除资料、附件。 表和表之间如果用外键关联的话,删除主表数据的前提必须是先将子表相关数据删除。 方法 1 : delete from Attachment where

http://blog.163.com/zhaoyanping_1125/blog/static/201329153201209104541109/

一、????????删除文章5,级联删除资料、附件。

表和表之间如果用外键关联的话,删除主表数据的前提必须是先将子表相关数据删除。

方法1

delete from Attachment where MatID in (select MatID from Material where AtrID=5)

delete from Material where AtrID=5

delete from Article where AtrID=5

?

方法2

DELETE A FROM Attachment A

INNER JOIN Material M ON A.MatID=M.MatID

WHERE M.AtrID=5

?

二、????????更改文章1下所有附件名称为“附件一”。

update Attachment

set Name='附件一'

where MatID in (select MatID from Material where AtrID=1)

UPDATE A SET Name='附件一'

FROM Attachment A

WHERE M.AtrID=1

?

总结:

这两个问题,方法2都可以从联合查询的方向去考虑这个问题,针对部分数据(小范围的数据)更新和删除。

?

这两种方法比较,第一种方法的in,当数据量比较大时,效率低;况且第二种方法简单易读。所以建议使用第二种方法实现

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读