`

sql删除树节点 及其子节点的全部(存储过程,游标,递归)

阅读更多

删除父节点及父节点之下的全部节点

比如删除节点为3,将递归删除其下的全部节点6,11,12

 表里面需要创建ID ,PID TID用处以后对树的复制操作 表格式如图所示:

PID用于存放节点的值 name存放内容 ID自动增长

0节点存在ID为1的节点 1节点下存在ID为2,3的节点 依次类推....

alter procedure DelereNote
 @id int--定义要删除树节点
 as
declare @childID int--声明变量
 declare cursors cursor local for select id from test where pid=@id--local关键字 全局游标
 open cursors
  fetch next from cursors into @childID--取游标的值赋给变量
  while(@@FETCH_STATUS=0)--判断当前游标内是否存在值
  begin
    exec DelereNote @childID--递归调用存储过程 把孩子节点的值赋给游标 递归调用
    fetch next from cursors into @childID--继续读取游标里面的内容
  end  
  close cursors
  deallocate cursors
delete from test where ID=@id--存储过程执行的删除方法
 
exec DelereNote 6--调用储存过程对于递归调用不很容易理解 需要多加练习

分享到:
评论

相关推荐

    mysql递归调用获取树节点(子树)

    在提供的`mysql递归调用获取树节点(子树).doc`文档中,应该详细解释了这个过程,包括如何创建和执行存储过程,以及如何使用提供的测试数据。确保查看文档以获取完整的步骤和示例,以便在实际项目中成功应用这些...

    用SQL Server取得树节点路径, 不用递归算法,不用游标,没有层次限制, 速度很快

    -- 用SQL Server取得树节点路径, 不用递归算法,不用游标,没有层次限制, 速度很快 -- 显示、打印用起来很方便的 -- print dbo.GetDeptPath('5cb3c3ee-4b2b-4005-8037-bb3876663d2e','->') -- select * from Dept

    sqlserver中的递归

    sqlserver递归查询树结构的表的根结点子最里层的子结点

    mysql递归调用获取树节点(子树).pdf

    本PDF文档介绍了一种方法,通过递归调用存储过程来获取树节点及其子树。以下是对相关知识点的详细说明: 首先,我们需要一个用于存储树形数据的表。在这个例子中,表名为`treenodes`,包含三个字段:`id`(主键,...

    mysql递归调用获取树节点(子树)借鉴.pdf

    在给定的文件中,我们看到了如何通过存储过程来实现递归调用来获取树节点(子树)的方法。下面将详细解释这个过程。 首先,创建了一个名为`treenodes`的表,用于存储树形结构的数据。表结构包含两个字段:`id`...

    无限级分类的非递归实现(存储过程版)

    在上面的存储过程中,我们定义了一个游标`cur`来遍历当前层级的所有子分类,并通过递归调用`generate_tree`处理每个子分类的子分类,直到所有子节点都被访问到。这样,我们就能生成整个分类树,而无需实际执行递归...

    SQL存储过程——加路径

    ### SQL存储过程——加路径 #### 背景与需求 在数据库管理中,经常会遇到需要为表中的数据添加层级关系或路径的情况。例如,在一个菜单系统中,我们需要记录每个菜单项所属的路径,以便更好地管理和展示这些菜单项...

    mysql递归查询.txt

    这个示例中的存储过程可以用来获取指定节点(例如 ID 为 1)的所有子节点及其层级信息。 #### 三、通过 SQL 函数实现递归查询 ##### 方法二:SQL 函数实现递归查询 **表结构创建:** ```sql DROP TABLE IF ...

    [sql server]SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用.doc

    "SQL Server 2005 杂谈:公用表表达式(CTE)的递归调用" 本文主要介绍了 SQL Server 2005 中公用表表达式(CTE)的递归调用,用于解决树型结构数据的查询问题。CTE 是 SQL Server 2005 中的一种新的查询方式,它...

    通过父编码信息给子节点分组

    对于更复杂的树形操作,可能需要编写存储过程,利用游标逐个处理节点。这在处理大量数据或需要多次迭代的场景下可能更为合适。 7. **物化视图**: 如果树形结构是静态的或更新不频繁,可以考虑创建物化视图来预先...

    实际工作中常用sql积累及总结

    本篇文章将针对"实际工作中常用sql积累及总结"进行深入探讨,涵盖事务处理、游标、存储过程、行列转换、递归查询、数据库备份与还原、分布式查询、批量更新、合并记录以及动态SQL等多个关键知识点。 1. **事务处理*...

    C# +SQL2000实现 无限级目录树(附源码)

    在这个项目中,SQL Server 2000被用来存储目录树的数据结构。开发者需要了解SQL语句,如SELECT、INSERT、UPDATE、DELETE,以及如何创建和操作表。 4. **无限级目录树**:无限级目录树是指可以包含任意多级别的层次...

    oracle树形结构,结合dtree插件使用显示树状结构菜单

    这个过程可以通过使用PL/SQL游标或Java的JDBC API来实现。 至于"DTree用法.ppt"文件,这可能是一个关于如何配置和使用dtree插件的演示文稿。通常,这样的文稿会包含dtree的基本用法、配置选项、示例代码以及可能的...

    oracle 树型的寻父或寻子

    在实际应用中,我们可能还需要处理动态插入、删除和更新节点的情况。这些操作可能需要更新整个树的结构,所以要特别注意事务管理和并发控制,防止数据不一致。在设计数据库时,可以采用自增序列或者其他唯一标识符...

    Oracle Proc编程

    - **私有SQL工作区、游标和记录集**:这些是用于管理和执行SQL语句的关键概念。 #### 五、开发嵌入式PRO*C/C++程序过程 - **程序编写规范**:为了保证代码质量和可维护性,需要遵循一定的编写规范,包括注释、变量...

    DB2错误解决手册

    SQLSTATE消息是DB2错误报告的一个重要组成部分,用于描述SQL语句执行过程中遇到的各种状态。 - **00** - **完全成功完成**:表示SQL语句执行成功,并且没有产生任何警告或异常。 - **01** - **警告**:虽然SQL语句...

    2021-2022计算机二级等级考试试题及答案No.13742.docx

    15. **MySQL游标**:游标在MySQL中不能在交互式SQL查询中声明和使用,但在存储过程、存储函数和触发器中可以。 16. **定义接口**:在Java等面向对象的语言中,使用`interface`关键字定义接口。 17. **HTML文本框**...

Global site tag (gtag.js) - Google Analytics