有两种办法可以删除表中的所有数据:
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_deleteon Class
for delete
as
begin
delete from Student
where Class_No=(select Class_No from deleted)
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)