go --查询指定id的所有子 createfunction f_cid( @idint )returns@retable([id]int,[level]int) as begin declare@lint set@l=0 insert@reselect@id,@l while@@rowcount>0 begin set@l=@l+1 insert@reselect a.[id],@l from[tb] a,@re b where a.[pid]=b.[id]and b.[level]=@l-1 end /**//**//**//*--如果只显示最明细的子(下面没有子),则加上这个删除 delete a from @re a where exists(