Вы можете использовать рекурсивный CTE для построения иерархии, начиная с конечного узла и возвращаясь к верхнему активному родительскому узлу:
declare @tmp table (Record int, Parent_Record int, Isactive bit)
declare @recordToCheck int = 5
insert into @tmp values
(1, 0, 1)
,(2, 1, 0)
,(3, 1, 0)
,(4, 2, 0)
,(5, 3, 1)
;WITH RESULT (Record, Parent_Record, Isactive, Lev)
AS
(
--anchor
SELECT A.Record,Parent_Record, Isactive, 1 AS LEVEL
FROM @tmp AS A
WHERE A.Record = @recordToCheck
UNION ALL
--outer
SELECT C.Record, C.Parent_Record, C.Isactive, Lev + 1
FROM @tmp AS C
INNER JOIN RESULT AS B
ON C.Record=B.Parent_Record
)
select top 1 @recordToCheck as Record, Record as Parent_Record, Isactive
from RESULT
where Isactive = 1
order by lev desc
Результат, например, 1:

Результат, например, 2:
