declare @ID varchar(10) set @ID=9 --根节点 declare @i int --级数 declare @t table(ID varchar(10),ParentID varchar(10),Level int) set @i = 1 insert into @t select @ID,0,0 --当前级,本级,如果不要的话可以注释掉或再加个参数来选择操作 insert into @t select ID,ParentID,@i from t_menuprivilege where ParentID = @ID while @@rowcount<>0 begin set @i = @i + 1 insert into @t select a.ID,a.ParentID,@i from t_menuprivilege a,@t b where a.ParentID=b.ID and b.Level = @i-1 end select * from @t