使用SQL语句如何实现删除多个表的记录?

使用SQL语句如何实现删除多个表的记录?,第1张

方法有三:
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 内机制


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13371386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存