级联删除
级联删除练习
--创建用户表(主表) create table UserInfo ( UserId int identity(1,1) primary key , UserName varchar(20), --用户名 password varchar(20) not null --密码 ) --创建用户详情表(附表) create table UserDetails ( id int identity(1,1) primary key, name varchar(50) not null, --真实姓名 userId int --方法一: 创建用于级联删除的约束 --foreign key (userId) references UserInfo(UserId) on delete cascade ) --方法二:创建用于级联删除的约束 alter table UserDetails --约束对象UserDetails add constraint [FK_UserDetails_UserInfo] --添加约束,命名为FK_UserDetails_UserInfo foreign key(UserId) references UserInfo(UserId) -- UserDetails表的UserId列引用UserInfo表UserId列的值 on delete cascade --级联删除 --插入测试数据 insert UserInfo values ('ly','jeff') insert UserInfo values('wzq','wzqwzq') insert UserInfo values('lg','lglg') insert UserDetails values('李四',1) insert UserDetails values('王五',2) insert UserDetails values('刘六',3) --测试级联删除 --删除 UserInfo 主表中UserID=1的同时删除UserDetails从表中UserId=1 的内容 delete from userInfo where UserId=1 --删除userDetails从表中UserId=1 对主表无影响 delete from userDetails where UserId=1 --删除用于级联删除的约束 ALTER TABLE [dbo].[UserDetails] DROP CONSTRAINT [FK_UserDetails_UserInfo] --查询 select *from UserInfo select *from UserDetails sqlserver 支持级联删除语法 alter table 外键表名称 add constraint 约束名称 Foreign Key(column[,...n]) references referenced_table_name[(ref_column[,...n])] [on delete cascade] 注释 column:外键表的列名 referenced_table_name:外键参考的主键表名称 ref_name:外键要参考的表的主键列 on delete:删除级联
树立目标,保持活力,gogogo!