现在的位置: 首页 > 综合 > 正文

实现无限级树结构

2013年04月16日 ⁄ 综合 ⁄ 共 921字 ⁄ 字号 评论关闭

表结构如下:

数据库 

id  path    title          sort     排序
1    0        首页         0
2    0,1      新闻        1
3    0,2      JAVA      2
4    0,3      JSP           3
5    0,2,3    业界动态    2
6    0,2,3    国内新闻    1

创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去

 

create  procedure test
as
begin
declare @len int
declare @str varchar(20)
declare @menuid varchar(20)
declare @name1 varchar(20)
declare @newtable table(id varchar(20),name varchar(20))

--这里在实现过程中是将排序ti和深度path结合,目的是为了实现子菜单的排序,其最好用id+path结合成新的path

--对理解会更有好处
insert into @newtable SELECT path+','+convert(varchar(10),m.sort) as newPath, m.name FROM testtree m  order by newPath,sort

declare  mycur cursor
for
  select * from @newtable
  open mycur
       fetch next from mycur
 into @menuid,@name1
  while @@fetch_status=0
        begin
    set @str=' '
     set @len=len(@menuid)
           --if(len(@menuid)=3)
   while(@len-3>0)
   begin
            set @str=@str+' '
            set @len=@len-1
    end
    print @str+'+'+@name1

     fetch next from mycur
 into @menuid,@name1
 end 
   close mycur
   deallocate mycur
end

go
execute test

抱歉!评论已关闭.