日期:2014-05-17  浏览次数:20360 次

SQL三个表联级更新删除
有A,B,C三个表
A:id,Title
B:id,Aid,Cid,Numbers
C:id,Total

对应关系是:A.id=B.Aid , B.Cid=C.id

从A表删除一记录,然后对应删除B表数据同时更新C表里的Total(规则是C.Total-B.Numbers),

这种联级应该怎么做??

------解决方案--------------------
update c
set c.numbers=C.Total-B.Numbers
from c inner join b on B.Cid=C.id
where b.aid=a表要删除的id

delete from b where b.aid=a表要删除的id

delete from a where id=a表要删除的id

上面语句要求一起执行。不过用外键来级联会好一点。