首页 > 代码库 > SQL SERVER 级联删除
SQL SERVER 级联删除
有三个表:
Company
Address
Contact
在Address和Contact中建立外键,外键id为company的id,
那么就不能任意删除Company。但假如在外键约束中把级联删除选上,就会连带address和contact一起删除。
SQL SERVER级联删除:在删除主表时,自动删除副表(外键约束)相应内容
SQL SERVER级联删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。
如:
create database temp
go
use temp
go
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
)
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)
此时:Delete From UserInfo Where UserId = 1 就可删除UserInfo表和UserDetails表的UserId=1 的内容
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)
此时:Delete From UserInfo Where UserId = 1 就可删除UserInfo表和UserDetails表的UserId=1 的内容。
SQL SERVER 级联删除