永发信息网

sqlserver两张表数据联级删除问题

答案:2  悬赏:0  手机版
解决时间 2021-03-19 04:53
  • 提问者网友:我的未来我做主
  • 2021-03-18 19:03
sqlserver两张表数据联级删除问题
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-03-18 20:27
给你做个简单试验吧
 
创建class表,里边其他字段我就略了
create table class(classid int not null primary key,
classname varchar(20))创建学生表
create table student(studentid int not null primary key,
studentname varchar(10),
classid int) 
添加外键级联删除或更新约束
alter table student add constraint FK_classid foreign key (classid) references class (classid) on update cascade on delete cascade 
向class表增加数据
insert into class values (1,'1班')
insert into class values (2,'2班')向student表增加数据
insert into student values (1,'aa',1)
insert into student values (2,'bb',2)
insert into student values (3,'cc',3) --这条是增加不进去的,会报错删除class表里一班的数据
delete from class where classid=1检查 student 表里数据

这个时候你就发现,为1班学生的那数据也同时被删了
全部回答
  • 1楼网友:几近狂妄
  • 2021-03-18 20:36
放在事务里面执行
BEGIN TRANSACTION
delete from Student where classid=5
delete from Class where classid=5
IF @@ERROR > 0
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯