atualizar a hierarquia
BEGIN TRAN
select * from PublicoAlvo where IdPai is null
UPDATE PublicoAlvo SET HIERARQUIA = LEFT(CONVERT(VARCHAR(20), dbo.f_convert_from_base10(Id, 16)) + '00000000', 8)
-- Trocar o id abaixo pelo id pai da árvore que deseja atualizar
;with arvore(Id, IdPai, Nivel, Hierarquia)
as(select Id, IdPai, 1 Nivel, cast(Hierarquia as varchar(256))
from PublicoAlvo
where Id = 1962958
union all
select p.Id, p.IdPai, a.Nivel +1, cast(a.Hierarquia + p.Hierarquia as varchar(256))
from PublicoAlvo p
join arvore a
on p.IdPai = a.Id)
update p
set p.hierarquia = a.Hierarquia
from PublicoAlvo p
join arvore a
on p.Id = a.Id
ROLLBACK