`

SQLServer实现树型结构数据查询的存储过程

阅读更多

CREATE PROCEDURE [dbo].[sp_get_tree_relation]
(@table_name nvarchar(50), @id nvarchar(50), @name nvarchar(50), @parent_id nvarchar(50), @startId nvarchar(20))
AS
    declare @v_id int
    declare @v_level int
    declare @sql nvarchar(500)
begin
    create table #temp (id nvarchar(20),name nvarchar(50),parent_id nvarchar(20))
    create table #t1 (id nvarchar(20),name nvarchar(50),parent_id nvarchar(20),level int)
    -- 将需要查询关系的表的数据先导入到临时表
    set @sql='insert into #temp select '+@id+','+@name+','+@parent_id +' from '+@table_name
    exec sp_executesql @sql

    set @v_level=1
    set @v_id=@startId
    insert #t1 select a.id,a.name,a.parent_id,@v_level from #temp a where a.id=@v_id
    while @@rowcount>0
    begin
        set @v_level=@v_level+1
        insert #t1 select a.id,a.name,a.parent_id,@v_level
        from #temp a where a.parent_id in
        (select id from #t1 where level=@v_level-1)
    end

    select a.level,a.id,a.name,a.parent_id,b.name parent_name
    from  #t1 a  left outer join #temp b
    on a.parent_id = b.id order by a.level asc
end

--执行
如果表organize为层级关系的表,则执行存储过程得到组织关系的树型结果
sp_get_tree_relation 'orgnaize','org_id','org_name','parent_org',1

分享到:
评论
1 楼 lostpaJAVA 2009-07-15  

相关推荐

    JSP实现树型结构TREE

    本例"JSP实现树型结构TREE"提供了一个使用JSP(JavaServer Pages)、EXTJS(一个前端JavaScript框架)、JSON(JavaScript Object Notation)以及MySQL数据库来创建树形结构的示例,这对于初学者或开发者来说,是一个...

    Delphi中数据库关联树型结构生成与同步数据维护.zip_数据同步_数据库关联_数据维护_树型结构生成

    通过学习和分析这个实例,开发者能够掌握如何在Delphi 7中实现数据库关联树型结构的生成和数据同步维护。 总的来说,Delphi中的数据库关联树型结构生成与同步数据维护是一项综合性的任务,它涵盖了数据库设计、用户...

    MS SQL Server树形结构表遍历的循环算法.pdf

    树型结构表是数据库中用来存储树形数据的一种数据表,该表通过自引用的方式记录每个节点及其父节点的关联信息,形成树状结构。 在三大主流数据库系统中,Oracle和IBM DB2均内置了递归查询的实现,能够高效地遍历树...

    使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

    总结来说,SQL Server 2005/2008的递归CTE是一个强大的工具,它能有效地处理树型结构数据的查询,帮助我们构建和理解复杂的层次关系。通过本文中的Family Tree实例,我们了解了如何定义递归CTE,以及如何使用它来...

    asp实现树型结构

    本文将详细介绍如何使用ASP(Active Server Pages)来实现一个简单的树型结构,并通过SQL Server数据库进行数据存储与读取。 #### 二、数据库设计 首先,我们需要创建一个数据库表来存储树型结构所需的数据。示例...

    如何展开存储在数据库中的树形数据结构.pdf

    本文介绍的三种遍历树形数据结构的方法,包括直接使用主语言支持的递归算法、使用SQL Server的存储过程以及以临时表作为堆栈的方法,分别针对不同的应用场景和需求提供了有效的解决方案。 首先,树形数据结构(Tree...

    ajax+asp无限级分类树型结构的代码

    【Ajax + ASP 构建无限级分类树型结构】 在Web开发中,构建无限级分类树型结构是一项常见的需求,特别是在内容管理系统或者电子商务网站中,用于管理产品分类或文章分类。Ajax(Asynchronous JavaScript and XML)...

    js+jsp+java+mysql 实现树型菜单

    MySQL作为关系型数据库管理系统,存储树型菜单的数据。每个菜单项可以被视为数据库表中的一个记录,具有父ID、ID、标题等字段,描述菜单的层级结构。通过合适的数据库设计,如自连接的菜单表或者使用额外的层级字段...

    坏孩子无限级树型菜单asp.net+SQL

    SQL Server 2000作为数据库管理系统,提供了高效的数据存储和查询功能。在构建树型菜单时,通常会用到关系数据库来存储节点信息,包括节点ID、父节点ID、节点名称等。利用SQL查询,我们可以轻松地获取和组织这些数据...

    SQLServer2000(邹键)

    本篇将深入探讨SQL Server 2000中的几个关键知识点,包括树型结构、字符串操作以及复杂的查询技术。 一、树型结构 在SQL Server 2000中,树型结构主要用于组织和检索数据,特别是对于层次化数据的管理。树型结构...

    SQL SERVER 无级机构树实例

    ”明确指出本篇内容将聚焦于如何在SQL Server中构建和查询树形结构数据,特别是一种无级别的树结构。这种结构允许每个节点有任意数量的子节点,并且任何节点都可以成为其他节点的父节点,形成复杂的层次关系。 ### ...

    易语言数据表关联树型框

    数据表,通常指的是二维表格形式的数据存储,可以理解为数据库中的表格。在易语言中,数据表可以通过内建的数据库接口或ODBC(Open Database Connectivity)来操作。ODBC是一个标准的数据库访问接口,允许程序连接到...

    基于SQL的双编号树结构数据研究.pdf

    综上所述,这篇研究详细地探讨了在SQL Server环境下实现树形数据结构的存储、表示和处理方法,并通过实例展示了如何使用SQL语句来汇总和操作树形结构数据。这对于数据库设计者和开发者来说是一个非常有价值的知识...

    无限级树形菜单(Sql数据库)

    Sql数据库,如MySQL、SQL Server或Oracle等,提供了强大的数据处理能力,可以有效地管理无限级别的树形数据。 首先,我们需要设计一个合适的数据库表结构来存储树形菜单的数据。一种常用的方法是使用自引用关系,即...

    基于Web的树型菜单的实现与应用

    - **原理**:通过数据库查询获取树形结构数据,然后动态构建TreeView组件。 - **优势**:适用于大型应用,可以实时更新树型结构。 - **示例**:可以设计一个数据库表来存储树形结构的数据,如节点ID、父节点ID等...

    物资管理系统源代码(vc6 + SQLServer2000)

    SQL Server 2000是微软的数据库管理系统,它提供了数据存储、查询、备份、恢复、安全性等全面功能。在这个物资管理系统中,它作为后端存储物资数据,支持添加、删除、修改和查询等操作。数据库文件通常包括数据文件...

    一种MySQL数据库SQL递归查询的研究与实现.pdf

    这种实现方法虽然比直接的递归查询语句复杂,但它避免了存储过程和函数的使用,使得整个查询过程都在SQL层面完成,更符合数据库查询的逻辑,并且可以在单条SQL语句中实现,提高了代码的简洁性和可维护性。...

    用SQL实现线性表的非线性逻辑模型的查询.pdf

    详细解释了关系数据库基础、线性表与非线性逻辑结构、层次逻辑模型与树型结构、SQL在关系型数据库中的应用、递归查询的实现、关系数据库中层次逻辑结构数据的查询算法以及实际应用举例。这些内容对于理解和操作关系...

Global site tag (gtag.js) - Google Analytics