SQL 怎么级联删除语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 怎么级联删除语句相关的知识,希望对你有一定的参考价值。

三个表A→B→C(A对B是一对多,B对C是一对多) 我想删除A表的一条数据后 级联删除B表和 B表多对应的数据 例:就是(删除 火车表 的一条数据) 删除后,会(删除所有的车厢表),删除后, 会删除所有的车厢椅子...... 谢谢大家 急用

参考技术A 方法一:
MSSQLSERVER
是支持
级联更新

级联删除
的,你要在建立
外键
的时候,要指定
EP:
alter
table
tb_userroles
add
constraint
FK_TB_USERR_RELATIONS_TB_FUNCT
foreign
key
(gnbm)
references
tb_function
(gnbm)
on
update
cascade
on
delete
cascade
方法二:用数据库触发器
参考技术B 记录的级联删除是不是指
有个
父子
关系的表例如
火车表

车厢表
如果
火车表的
某条记录删除了,
那么车厢表的
从属于
这个火车的所有记录,都一起,
参考技术C 你是什么数据库,Oracle的话,如果父表和子表之间有外键约束关系,那么可以再删除主表指定的数据的时候,加上ON
DELETE
CASCADE
,当父表记录删除的时候自动删除子表中的相应记录.

sql2000 如何用触发器实现级联删除

参考技术A 下面是在user表上建立触发器的语句,在topic上建触发器的语句类似
CREATE
TRIGGER
deleteuser
ON
[dbo].[user]
INSTEAD
OF
DELETE
AS
DECLARE
@id
int;
--把数据类型改成与user_id一致
SELECT
@id=user_id
from
deleted;
DELETE
FROM
UT
WHERE
user_id=@id;
DELETE
FROM
user
WHERE
user_id=@id;
你把级联
DELETE

UPDATE取消掉就行了
参考技术B delete
user
where
user_id
in
(select
user_id
from
UT
where
1=1)
delete
topic
where
topic_id
in
(select
topic_id
from
UT
where
1=1)
无须触发器.
直接用子删除语句即可实现.
不知满意否>
如果一定要用
也可以留言给我
继续作答

以上是关于SQL 怎么级联删除语句的主要内容,如果未能解决你的问题,请参考以下文章

sql中级联删除,级联更新是怎么理解的?

sql中级联删除,级联更新是怎么理解的?

sql2000 如何用触发器实现级联删除

sql 级联删除问题

sql级联更新和级联删除不起作用

多表联查时的sql删除语句的写法,即级联删除,将相关联的数据级联删除