当前位置: 代码迷 >> Sql Server >> sql2005 如何设置级联删除
  详细解决方案

sql2005 如何设置级联删除

热度:38   发布时间:2016-04-27 12:52:35.0
sql2005 怎么设置级联删除
如果有一张表(同一张)

如图

主键是cate_id代表类别 每一列有对应的parent_id 代表对应的父类

没有父类时,parent_id值为0;

有父类时parent_id值为对应的cate_id

如何在删除cate_id的时候。同时删除 parent_id与cate_id 相等的项

------解决方案--------------------
图挂了。
语法类似这样:
SQL code
--外关键字增加级联删除、级联更新alter table 表add constraint fk_name foreign key(约束列)references 主表(约束列)on update cascadeon delete no action
------解决方案--------------------
这个应该不是级联来处理的事,楼主自己写语句来处理了。

1、递归找到该节点下所有子节点,例如按公司来看

SQL code
;with cte as(    select id,parentid from SM_Company where id = 2 --要删除的公司节点    union all    select a.id,a.parentid    from SM_Company a join cte b on a.parentid = b.id    where a.id is not null)
  相关解决方案