触发器:递归删除树型结构的信息
2007-11-02 08:48
295 查看
数据库中有 Info 表,主键为 ID,其中一个字段 ParentID 记录父记录 ID,由此构成树型结构。当删除一条记录时,需要同时删除所有子孙记录,使用触发器来执行此项操作:
-- =============================================
-- 此触发器在删除信息时同时删除每个信息的下级信息
--
-- 此触发器的作用是保证在删除树型结构的信息时不会留下零碎的树枝。
-- 此触发器应被递归执行。如无法递归,请执行:
-- ALTER DATABASE [DBName]
-- SET RECURSIVE_TRIGGERS ON
-- 语句使之可行。
-- =============================================
ALTER TRIGGER [dbo].[DeleteSubInfos]
ON [dbo].[Info]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
if((select count(id) from deleted)>0)
Delete From [Info] Where [ParentID] in (Select [ID] From [deleted]);
END
-- =============================================
-- 此触发器在删除信息时同时删除每个信息的下级信息
--
-- 此触发器的作用是保证在删除树型结构的信息时不会留下零碎的树枝。
-- 此触发器应被递归执行。如无法递归,请执行:
-- ALTER DATABASE [DBName]
-- SET RECURSIVE_TRIGGERS ON
-- 语句使之可行。
-- =============================================
ALTER TRIGGER [dbo].[DeleteSubInfos]
ON [dbo].[Info]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
if((select count(id) from deleted)>0)
Delete From [Info] Where [ParentID] in (Select [ID] From [deleted]);
END
相关文章推荐
- 树型结构递归 实体递归 JSON格式
- dropdownlist实现树型结构的栏目信息
- java学习笔记 使用递归 将文件目录树形结构输出,递归删除目录 文件夹。
- 【DRP】树形结构操作之递归删除
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
- Java递归实现删除树形结构的任一节点
- JSTL实现递归展示树型结构数据
- 通过触发器通过一个表的添加删除操作另一个表里的信息添加删除
- 清除代码中的svn信息(递归删除.svn目录)
- JSTL实现递归展示树型结构数据
- 高性能删除树形结构的空节点(递归遍历树形结构) Delphi
- Oracle递归实现树型结构两种方法
- 非递归方式线性结构转换为树型结构(zTree核心)
- sql 树型结构查询 递归方式
- 用递归处理树型结构(表结构)
- 删除内存树结构的时候,千万注意内存泄漏问题,采用递归比较简单。
- 递归删除树形结构的所有子节点(java和mysql实现)
- dropdownlist实现树型结构的栏目信息的两种方法
- 递归删除树结构数据
- 删除会员所有信息的触发器