BEGIN
WITH Rec (Id, ParentCategoryId, Published, Deleted)
AS
(
SELECT Id, ParentCategoryId,Published, Deleted FROM [dbo].[Category] WHERE ParentCategoryId = 0 AND Id =
@CategoryId UNION ALL select c.Id, c.ParentCategoryId, c.Published, c.Deleted FROM [dbo].[Category] as c inner join Rec on Rec.Id = c.ParentCategoryId
)
SELECT * FROM Rec
JOIN Category as Category
ON Category.Id = REc.Id
WHERE Rec.Published = 1 AND Rec.Deleted = 0
END