Вам может быть интересно увидеть это презентацию самим Андреем самостоятельно, как улучшить scopedguard с помощью c ++ 11
Если у вас есть корень желаемого дерева, не можете ли вы просто использовать:
DECLARE @root hierarchyID;
SELECT @root = col
FROM yourTable
WHERE [whatever uniquely identifies this row]
SELECT *
FROM yourTable
WHERE col.IsDescendantOf(@root) = 1