经过两个星期断断续续的努力,终于把这棵树种下了,这是棵可以拖拽修改树结构的树,中间有700行javascript代码,用了5个sql存储过程,或许有点复杂,或许有比这更简单的办法,不过我想再简单这700行js代码是免不了的。这过程也体会到“sql语法的博大精深”(某老大语),比如递归是树用的算法中最经典的,但是在sql中怎么办?不能用递归,怎么编历树?一个循环加一个临时表就能解决问题 表的结构是这样的 id int,pid int --创建一个临时表 create table #a(id int,pid int) declare @pare int set @pare=@pID insert into #a (id,pid) values (@id,0) WHILE(@@ROWCOUNT<>0) begin insert into #a select id,parent from tb_user_topic where parent in (select ID from #a) and id not in(select ID from #a) end 这样临时表中存放的就是编历过后的节点,简单啊