CREATE TABLE [dbo].[AframeGroup] ( [GroupID] [int] IDENTITY (1, 1) NOT NULL , [ParentGroupID] [int] NOT NULL , [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , ) ON [PRIMARY]
ALTER PROCEDURE apBL_Group_GetSubTreeItems (@RootID int) AS BEGIN DECLARE @GroupID int, @GroupName varchar(30) SET @GroupName = (SELECT [Name] FROM AframeGroup WHERE GroupID = @RootID) PRINT REPLICATE('-', @@NESTLEVEL * 4) + @GroupName + ' (ID = ' + CAST(@RootID AS VarChar(20)) + ')' SET @GroupID = (SELECT MIN(GroupID) FROM AframeGroup WHERE ParentGroupID = @RootID) WHILE @GroupID IS NOT NULL BEGIN EXEC dbo.apBL_Group_GetSubTreeItems @GroupID SET @GroupID = (SELECT MIN(GroupID) FROM AframeGroup WHERE ParentGroupID = @RootID AND GroupID > @GroupID) END END