首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2005 如何设置级联删除

2012-05-15 
sql2005 怎么设置级联删除如果有一张表(同一张)如图主键是cate_id代表类别 每一列有对应的parent_id 代表

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) 

热点排行