1利用触发器。
2添加外键关系,并设置级联删除
3先删除评论,再删除文章,最后删除栏目,同时写在一条SQL语句中即可
假如要删除栏目id为1的所有相关信息
delete comment where articleid in (select articleid from article where categoryid=1) delete article where categoryid=1 delete category where categoryid=1
1、首先创建一个临时表,用于演示sqlserver语法中delete删除的使用方法
IF OBJECT_ID('tempdb#tblDelete') IS NOT NULL DROP TABLE #tblDelete;
CREATE TABLE #tblDelete(
Code varchar(50),
Total int
);
2、然后往临时表#tblDelete中插入几行测试,用于演示如何删除数据
insert into #tblDelete(Code, Total) values('Code1', 30);
insert into #tblDelete(Code, Total) values('Code2', 40);
insert into #tblDelete(Code, Total) values('Code3', 50);
insert into #tblDelete(Code, Total) values('Code4', 6);
3、查询临时表#tblDelete中的测试数据select from #tblDelete;
4、删除临时表#tblDelete中Code栏位=Code3的记录,使用下面的delete语句
delete #tblDelete where Code = 'Code3'
5、再次查询临时表#tblDelete的结果,可以看到Code3的记录没有了
select from #tblDelete;
6、删除临时表#tblDelete中Code栏位=Code2的记录,使用下面的delete语句。
注意,下面的delete语句后面有一个from关键字,这个关键字是可以省略的,但是建议不要省略
delete from #tblDelete where Code = 'Code2'
7、再次查询临时表#tblDelete的结果,可以看到Code2的记录没有了
select from #tblDelete;
8、最后,如果想要快速的删除表中的所有数据,有下面两种方式。第二种方式速度更快,delete from #tblDelete;truncate table #tblDelete;完成效果图。
我目前只有看过一条delete删除一张表中的数据, 如果你要同时删除多张表的数据,我的想法是:
把多条delete 语句放在一个事务里面;
一个事务算同时吧delete t三 where t三B列 in ( select B列 from t二 inner join t一 on t二A列=t一A列 ); delete t二 where t二A列 in ( select A列 from t一 ) 说明两sql语句间加号执行点击sql server 菜单新建查询d新窗口运行述语句普通sql语句删除两表做与sql server 内机制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)