如何在sql中实现级联删除

如何在sql中实现级联删除,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

我想做一个简易的单板块的论坛,有帖子表和回复表,回复表里有帖子编号字段和回复编号字段,帖子编号是外键。有一个功能就是管理员把一条留言删除后相应的回复自动删除。请问在sql中如何设置

解析:

也可以用建立关系来实现,打开SQL中的“关系图”->建立关系图,然后选择你要建立关系的表,如果你的主键和外键已经建立好,则会自由关联,如果没有就手工拖一下,接下来就是选择“级联更新相关字段”和“级联删除相关字段”即可。

触发器方式: create trigger trg_A on A for update,delete as begin if exists(select 1 from inserted) update B set Name=(select Name from inserted) where Name=(select Name from deleted) else delete B where Name=(select Name from deleted) end go 要使用级联性更新和删除,用户可以在Alter TABLE 语句的CONSTRAINT子句中使用ON Update CASCADE 和/或 ON Delete CASCADE 关键字。注意他们都必须是应用于外键的。 级联更新和级联删除方式: Alter TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON Update CASCADE ON Delete CASCADE

这个简单哎

1.先删除已经建立的外键约束

alter

table

SC

drop

constraint

外键名

--外键名可在表架构里查到

2.重建外键约束并且加入级联删除项

Alter

TABLE

sc

ADD

CONSTRAINT

[FK_sc]

FOREIGN

KEY

(sno)

REFERENCES

student(sno)

ON

Update

CASCADE

ON

Delete

CASCADE

--本行表示级联删除的开启


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11740756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存