SQL SERVER 数据库级联删除

复制代码
--SQL SERVER 2008R2 级联删除:主子表设置外键关联,当主表数据删除的时候会自动删除子表中对应的数据

--创建主表
create table test_main(
ID int identity(1,1) PRIMARY KEY,
COL2 varchar(50),
COL3 varchar(50)
)

--创建子表
create table test_detail(
BID int identity(1,1) PRIMARY KEY,
ID int,
COL3 varchar(50),
COL4 varchar(50)
)

--子表设置外键关联,在删除时起作用,[FK_T_MAIN_T_DETAIL]是主子表关联外键的名字
Alter TABLE test_detail ADD CONSTRAINT [FK_T_MAIN_T_DETAIL] FOREIGN KEY( [ID] ) 
REFERENCES [dbo].[test_main] ( [ID] ) ON Update CASCADE ON Delete CASCADE 

--插入测试数据
insert into test_main values('aaa','bbb')
insert into test_detail values('1','ccc','aaa')
insert into test_detail values('1','ddd','aaa')

--查看数据是否存在
select * from test_main
select * from test_detail

--删除主表数据时,会根据外键把子表的数据删除
delete from test_main where ID='1'

--drop table test_detail
--drop table test_main
复制代码

 

posted @   Jackie Hao  阅读(3280)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示