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

比如:如果删除栏目表下的一条记录,那么该栏目下对应的新闻,新闻表中的新闻也将删除,同时还有评论表中对应这些新闻的评论也将删除。

用sql语句该怎么写?

方法有三:
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个回答  2015-07-10
写个存储过程来实现,CardNo是自定义的数据类型;
参考如下例子:
CREATE PROCEDURE DelFixUser
@CardNo CardNo
AS
Declare @CarNo CarNo
select @CarNo=车辆号码 from FixCardIndexTable
where 卡号=@CardNo
Delete from AllCardIndexTable
where 卡号=@CardNo
Delete from FixCardIndexTable
where 卡号=@CardNo
Delete from FixCardEndDateTable
where 卡号=@CardNo
Delete from CardPassWordTable
where 卡号=@CardNo
Delete from UserCarInfoTable
where 车辆牌号=@CarNo
说明:删除一个固定用户记录,同时从AllCardIndexTable、FixCardIndexTable、FixCardEndDateTable、CardPassWordTable和UserCarInfoTable表中删除相应的记录。
第2个回答  2009-09-15
可以的在删除的时候做个转向页面 这个页面时专门执行删除语句的,然后在这个页面多写几个SQL语句就行了 这个是最笨最简单的方法
第3个回答  2009-09-15
或者写一条sql 或者分着写三条 写一条就是要嵌套 很麻烦 那就写三条分着写 先删除评论 再删除新闻 接着删除栏目呗 如果是Oracle里 那就更好办了 用pl/sql直接找到这个表,直接删就可以了 不行再回滚 记得先备份哦
第4个回答  2009-09-15
用事务
一个表一个表删除。
先删除评论表
再删除新闻表
最删除栏目。

使用SQL语句如何实现删除多个表的记录?
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 whe...

在sql语言中,实现删除表内记录的语句
1、TRUNCATE TABLE  删除表中的所有行,而不记录单个行删除操作。 (1)语法:TRUNCATE TABLE name;(2)参数 name 是要截断的表的名称或要删除其全部行的表的名称。2、DELETE语句,属于计算机软件领域,是编程中实现删除功能的命令。(1)DELETE语句:用于创建一个删除查询,可从列在 FR...

sql语句里delete
在SQL中,DELETE语句的主要作用是删除数据库中的一个或多个记录。这是通过对指定的条件进行匹配来实现的,这些条件通常基于列的值。一旦执行DELETE语句,所匹配的行将被永久删除。DELETE语句的使用方式 DELETE语句的基本语法结构是:`DELETE FROM 表名称 WHERE 条件`。其中,“表名称”是要删除...

sql的delete怎样同时删除多个表中的记录?
针对第一个表写个删除触发器,使得删除第一个表的同时删除第二个表的数据。create trigger del_tab on table1 for delete as if (select a from deleted)='N'begin delete from table2 where field b=N and c=N end;

如何用一条SQL语句删除3个表中的内容
一条SQL语句,使用delete多表删除的用法咯 delete 新闻表 评论表 分类表 From 新闻表 评论表 分类表 where 新闻表.新闻ID=评论表.新闻ID and 新闻表.sortID=分类表.sortID and 分类表.sortID='类别1'以上为删除“类别1”相关的三个表的记录的SQL。对了你说的三个表没有主外键关联??上面的...

如何用一条sql语句清空多张表中的记录?请各位大神帮忙
不支持同时update、delete、truncate多张表,只能一个一个的操作 可以写一个游标,逐步执行delete操作

在sql语言中,实现删除表内记录的语句
在sql语言中,实现删除表内记录的是DELETE语句。使用Delete语句可以根据指定的条件,将满足条件的记录从数据表中删除。其中,TABLE_NAME表示要删除的数据表的表名,condition指定要删除的记录的具体条件,比如ID=3,表示删除ID等于3的记录。使用truncate语句可以直接对数据表进行清空,将表中所有的记录删除。

SQL怎么用DELETE删除多条数据
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,...

高手!如何一条SQL语句删除多张表中记录
最好不要使用这种方式,包括级联删除,触发器但不限于数据库的自动处理功能,这样的后果就是数据在后台自动被改动,在我看来,数据的不可控情况是极度糟糕的问题,而且这样的情况是程序代码编写混乱造成的严重后果,我认为,数据库就只是拿来存放数据的,所有的逻辑都应该跟数据库无关,数据库的理想状态应该...

sql 怎么同时删除多个表中的全部数据,而不删除表结构,不要用多条delete...
delete 与TRUNCATE都会保留表结构,但不要用delete ,用TRUNCATE 更好一些 一条语句只能删除一个表,如果想删除多了表可以把多个语句连到一起。例如:TRUNCATE TABLE table1;TRUNCATE TABLE table2;

相似回答