SQL Server树型结构数据处理的存储过程

来源:asp之家 时间:2010-01-26 13:40:00 

我们在平常的系统开发中常常会遇到像无限级分类这样的树型结构数据,现提供一个可用的数据库存储过程,可以完成树型结构数据的排序。

环境:windows7+Sql Server 2008

说明:下面代码已经转换成Sql server2000的脚本,处理效果如下,看sortname字段结果,代码经过测试。

 创建树型表


以下为引用的内容:

CREATE TABLE [dbo].[categories](
    [category_id] [int] IDENTITY(1,1) NOT NULL,
    [parent_id] [int] NULL,
    [category_name] [varchar](500) NULL,
CONSTRAINT [PK_categories] PRIMARY KEY CLUSTERED
(
    [category_id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO


插入测试数据


以下为引用的内容:

INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (1, 0, CONVERT(TEXT, N'A'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (2, 0, CONVERT(TEXT, N'B'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (3, 1, CONVERT(TEXT, N'AA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (4, 3, CONVERT(TEXT, N'AAA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (5, 2, CONVERT(TEXT, N'BB'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (6, 1, CONVERT(TEXT, N'AA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (7, 1, CONVERT(TEXT, N'AA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (8, 3, CONVERT(TEXT, N'AAA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (9, 4, CONVERT(TEXT, N'AAA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (10, 2, CONVERT(TEXT, N'BB2'))


创建存储过程,表中的level为级别深度,通过生成的临时表与分类表关联显示结果。


以下为引用的内容:

CREATE PROCEDURE [dbo].[Get_TreeData]
AS
BEGIN
    --创建临时表
    create table #tmp_table (id int,[level] int)
   
    declare @LevelValue int  
    set @LevelValue=0  
    insert #tmp_table select 0,@LevelValue
    --将数据写入到临时表
    while @@rowcount>0  
    begin  
      set @LevelValue=@LevelValue+1  
      insert #tmp_table select a.category_id,@LevelValue  
      from categories <span style

标签:SQLServer,树,数据,存储过程
0
投稿

猜你喜欢

  • ASP用户登录模块的设计

    2008-11-21 16:55:00
  • 好友列表利用率越高,社区越失败

    2008-04-10 12:22:00
  • 牛刀小试YUI compressor(YUI安装方法)

    2009-02-12 16:18:00
  • 交互设计师心得——核心竞争力

    2010-01-19 13:45:00
  • oracle & mysql 多实例启动区别

    2011-02-23 12:28:00
  • 从XML中读取数据到内存的实例

    2008-09-04 14:43:00
  • oracle 存储过程加密的方法

    2009-03-06 10:58:00
  • Asp下Access无法更新的解决方法

    2012-12-04 20:19:35
  • list视图方式设计浅析

    2008-12-21 16:04:00
  • 用ADODB.Stream代替FSO读取/写入文本文件

    2008-01-31 12:19:00
  • SQL Server数据库占用过多内存的解决方法

    2009-10-23 14:02:00
  • css模拟title和alt的提示效果

    2007-11-08 13:03:00
  • oracle用什么SQL语句判断表存不存在

    2010-07-23 13:23:00
  • fso文件按照文件名字母排序

    2008-03-09 15:25:00
  • ASP 高亮显示不区分大小写的关键字

    2011-03-09 10:45:00
  • 说说tab设计

    2009-07-26 09:56:00
  • 404页面设计一样可以闪光

    2007-08-19 15:09:00
  • position两三事

    2009-02-16 15:23:00
  • SQL Server中选出指定范围行的SQL语句写法

    2008-12-09 15:04:00
  • 用Mimer Validator检查SQL查询

    2009-04-24 11:59:00
  • asp之家 网络编程 m.aspxhome.com