触发器 级联删除

cvsz1990 2012-11-29 01:55:54
三个表级联
table1 里面有一个id主键,
table2 里面有一个id主键,
table3 里面有一个id主键,
删除table1中的id,table2和table3中的数据也跟着删除。
这个触发器怎么写?不能用外键操作。
...全文
180 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cvsz1990 2012-12-06
  • 打赏
  • 举报
回复
delete from B where b.id = :old.id; delete from C where c.id = :old.id;
UPC子夜 2012-11-30
  • 打赏
  • 举报
回复
触发器本身不复杂 delete from B where b.id = :new.id; delete from C where c.id = :new.id; 还不会的话,百度就可以了、 不能用操作是什么意思?不懂
xxwood 2012-11-30
  • 打赏
  • 举报
回复
BenChiM888 2012-11-29
  • 打赏
  • 举报
回复
下载代码方式:https://pan.quark.cn/s/ef6a0480725f ### SQL Server 触发器构建级联删除机制在数据库维护中,触发器被视为一种特殊的存储程序,其设计目的是在响应特定事件(例如数据插入、更新或删除)时自动运行。本文将系统阐述如何在 SQL Server 平台上构建一个触发器,以达成级联删除的操作目标。#### 一、触发器概述触发器是一种由 SQL Server 提供的机制,它允许用户设定当特定数据操作(如 INSERT、UPDATE 或 DELETE)发生时应当执行的行为。触发器可用于维护数据完整性、监控数据变更或实施复杂的业务规则。它们对于保障数据的一致性和安全性具有关键作用。#### 二、级联删除的应用情境级联删除指的是在主表中的记录被移除时,自动清空与之关联的子表中所有对应的记录。此类需求常见于存在层级关联的数据表中,例如:- **产品分类数据表**与**具体产品数据表**之间的关联:当移除某个分类时,需要同时移除该分类下的所有产品。- **部门信息表**与**员工信息表**的关联:若某个部门被解散,则该部门下的所有员工信息也需被清除。#### 三、级联删除的构建途径通常情况下,数据库管理系统通过外键约束支持级联删除。然而,在某些情况下,可能由于历史遗留因素或其他原因,无法直接应用外键约束。这种情况下,可以通过开发触发器来手动实现该功能。#### 四、触发器实现级联删除的详细流程假设存在两个数据表:`Category` 和 `Product`。其中`Category` 表存储产品分类信息,`Product` 表则记录具体的产品信息。`Category` 表与 `Product` 表形成一对多的关联关系,即每个分类...
以前用Sql Server只会对图形界面进行操作,现在发现自己的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 [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON UPDATE CASCADE ON DELETE CASCADE ---------------------------------------------------------------------------------------------------------------------------- 如果,现在有两张表A(id,xx.xx...),C(id,Cid,xx,xx...),预实现C中的id与A 中id级联删除、级联更新/数据同步,可有两种实现方式: 一. 利用sql server自带的级联删除、级联更新功能,即其外键约束途径 alter table dbo.C add constraint FK_C_A_AID foreign key(AID) references dbo.A(AID) on delete cascade on update cascade go alter table dbo.C add constraint FK_C_B_BID foreign key(BID) references dbo.B(BID) on delete cascade on update cascade go 级联更新和级联删除方式: 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

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧