mssql depth of a tree
Edit
we will write a function to find the depth of a tree. The depth of node N in the tree is the length of the path from the root of the tree to node N. Height of the tree is one plus the depth of the deepest node in the tree.
function to find the height of the tree is useful in application like an HR employee app where you have a hierarchical database.
SQL function to find the depth of the tree
CREATE FUNCTION [dbo].[SC_TreeDepth]
(
@Id uniqueidentifier
)
RETURNS integer
AS
BEGIN
declare @retval int;
;WITH Temp(Id,ParentCategoryId,TreeLevel) as(
SELECT Id,ParentCategoryId,0 as TreeLevel FROM SetupCategory
WHERE ParentCategoryId = '00000000-0000-0000-0000-000000000000'
UNION ALL
SELECT SetupCategory.Id,SetupCategory.ParentCategoryId,TreeLevel 1 FROM SetupCategory
INNER JOIN Temp ON SetupCategory.ParentCategoryId = Temp.Id
where SetupCategory.ParentCategoryId != '00000000-0000-0000-0000-000000000000'
)
select @retval = TreeLevel from Temp where Id = @Id
RETURN @retval
END
GO
I will explain this article soon.