如何删除有主外键关系的数据呢?
2012-04-08 21:25
288 查看
举个例子,比如一个新闻发布系统,有类别表,新闻表和评论表,分别设立主外键关系。
如图:
![](http://pic002.cnblogs.com/images/2012/362290/2012040821102247.png)
那如何删除类别表中的国际新闻是,连同其下的新闻表和评论表也一同删除呢?
两种方法,第一种很简单,当在创建主外键时,如图所示:
![](http://pic002.cnblogs.com/images/2012/362290/2012040821143496.png)
把删除规则设为层叠(SQL2005),在SQL2008中又叫做级联了!
类别表和新闻表,新闻表和评论表都要设为层叠。
第二种就是写触发器了!
这是类别表的触发器:
如图:
![](http://pic002.cnblogs.com/images/2012/362290/2012040821102247.png)
那如何删除类别表中的国际新闻是,连同其下的新闻表和评论表也一同删除呢?
两种方法,第一种很简单,当在创建主外键时,如图所示:
![](http://pic002.cnblogs.com/images/2012/362290/2012040821143496.png)
把删除规则设为层叠(SQL2005),在SQL2008中又叫做级联了!
类别表和新闻表,新闻表和评论表都要设为层叠。
第二种就是写触发器了!
这是类别表的触发器:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <zxj> -- Create date: <2012> -- Description: <删除类触发器> -- ============================================= ALTER TRIGGER [trigCategoryDelete] ON [dbo].[cateGory] instead of DELETE AS BEGIN --select * from deleted declare @caid int select @caid=id from deleted --delete news where caId=(select id from deleted) --select * from comment where newsid in(select id from news where caid=@caid) --删除评论 delete comment where newsID in (select Id from news where caid=@caid) --删除新闻 delete news where caId=@caid --删除类别 delete category where id=@caid END
相关文章推荐
- 如何删除有约束关系的数据
- sql中如何通过主表删除关联子表数据(带外键)
- 如何删除数据库中的所有用户表(表与表之间有外键关系)
- MySQL 如何删除有外键约束的表数据
- MySQL 如何删除有外键约束的表数据
- mysql如何删除作为外键的数据
- MySQL 如何删除有外键约束的表数据
- 如何让 TreeView 的列表项携带数据、并读出或删除这个数据 - 回复 "Splendour" 的问题
- 外键关联而无法删除数据
- SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- 如何利用SQL Server With As递归获取层级关系数据
- SQL 如何删除数据表中重复的数据?
- 控制器降级失败后如何删除 Active Directory 中的数据
- MySql-如何查询删除数据表重复记录
- 试图删除 xx 和yy之间的关系。但是,关系的其中一个外键 (xx_yy.xxID) 无法设置为 null。
- mysql 在删除数据出现Cannot delete or update a parent row: a foreign key constraint fails 这个该如何解决
- 如何解决“Excel中某一列是运算以后得出的,删除原来列以后,数据没有了”的问题
- 数据库主外键,级联的保存、更新和删除
- SQL删除数据库里所有表的外键,同时删除所有用户表