“sql”怎么同时删除多个表中的全部数据?

“sql”怎么同时删除多个表中的全部数据?,第1张

有两种办法可以删除表中的所有数据

1、TRUNCATE TABLE  删除表中的所有行,而不记录单个行删除 *** 作

语法 TRUNCATE TABLE name

参数 name 是要截断的表的名称或要删除其全部行的表的名称。

2、Delete from tablename where 1=1

一个sql语句是没办法执行两个删除 *** 作,如果你要实现上面的功能,有以下几个选择:

1.用外键关联删除,把B表的uid设成外键关联A表的ID,并关联删除 *** 作

2.用存储过程,用事务来处理实现;

望采纳!

删除多表关联数据的三种方法

1、级联删除

create table a

(

id  varchar(20) primary key,

password varchar(20) not null

) create table b

(

id int identity(1,1)  primary key,

name varchar(50) not null,

userId varchar(20),

foreign key (userId) references a(id) on delete cascade

)

表B创建了外码userId 对应A的主码ID,声明了级联删除

测试数据:

insert a values ('11','aaa')

insert a values('23','aaa')

insert b values('da','11')

insert b values('das','11')

insert b values('ww','23')

删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了

delete a where id='11'

2、采用存储过程

A表:AID   Aname                               主健:AID

B表:BID   BelongAID Bname               主健:BID,外健:BelongAID

C表:CID BelongBID Cname                 主健:CID,外健:BelongBID

D表:DID BelongCID Dname                主健:DID,外健:BelongCID

其中:

A表和B表通过A.AID和B.BelongAID  创建了外健关系

B表和C表通过B.BID和C.BelongBID   创建了外健关系

C表和D表通过C.CID和D.BelongCID  创建了外健关系

3、采用触发器

删除Class表中的一条记录的同时删除该记录Class_No字段值在Student表中对应的记录。

Create Trigger Class_delete

on Class

for delete

as

begin

delete from Student

where Class_No=(select Class_No from deleted)

end


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

原文地址: http://outofmemory.cn/sjk/10001214.html

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

发表评论

登录后才能评论

评论列表(0条)

保存