最近在做一个OA系统,用SQLServer2008数据库。系统里有个删除员工的功能,但是考虑到其他表中有员工表的外键,删除时应该将其他表中相关的记录全部删除,请问如何写语句?
比如员工表是OA_User,员工编号Uid,数据库中最少有10张表里有Uid外键,请问如何删除其他表中的相关记录?多表删除外键SQLServer2008
比如员工表是OA_User,员工编号Uid,数据库中最少有10张表里有Uid外键,请问如何删除其他表中的相关记录?多表删除外键SQLServer2008
create table OA_tb
(
id int identity(1,1)primary key ,
Uid int foreign key references OA_User(Uid) on delete cascade --级联删除
)insert into OA_User
values(1,'张三'),
(2,'李四')
insert into OA_tb
values(1),(1),(1),(2),(1)
--删除主表中udi 为2的记录,没有报错
delete from oa_user where uid = 2--附表中的uid为2的记录,自动删除
select * from oa_tb
/*
id Uid
1 1
2 1
3 1
5 1
*/
你可以这么来修改的:1、找到附表,也就是引用oa_user表中的uid的表,然后找到外键,右键,选择“修改”
2、在删除中选项“级联”