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下所有附件名称为“附件一”。
方法1:
update Attachment
set Name='附件一'
where MatID in (select MatID from Material where AtrID=1)
方法2:
UPDATE A SET Name='附件一'
FROM Attachment A
INNER JOIN Material M ON A.MatID=M.MatID
WHERE M.AtrID=1
总结:
这两个问题,方法2都可以从联合查询的方向去考虑这个问题,针对部分数据(小范围的数据)更新和删除。
这两种方法比较,第一种方法的in,当数据量比较大时,效率低;况且第二种方法简单易读。所以建议使用第二种方法实现。