码迷,mamicode.com
首页 > 其他好文 > 详细

级联删除

时间:2017-08-13 01:06:56      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:级联删除   val   创建   values   where   名称   null   测试数据   测试   

级联删除练习

--创建用户表(主表)
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:删除级联

  

级联删除

标签:级联删除   val   创建   values   where   名称   null   测试数据   测试   

原文地址:http://www.cnblogs.com/hao-1234-1234/p/7352057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!