Я попытался выше ответы, но они требуют MySQL (нужен SQL Server), функцию CLR, или содержать только информацию о информации URL-адрес для текущего документа. Для детей и документов, глубоко в пути навигации, я хотел включить полный путь. Нижеследующие работы для меня
; WITH PathXml AS (
/* -- This just gives nodes with their 'urlName' property
-- not in recycle bin,
-- level > 1 which excludes the top level documents which are not included in the url */
SELECT
nodeId,
cast([xml] as xml).query('data(//@urlName[1])').value('.', 'varchar(max)') AS Path
FROM cmsContentXml x
JOIN umbracoNode n ON x.nodeId = n.id AND n.trashed = 0 AND n.level > 1
)
SELECT
un.id,
un.path,
'/' +
/* IsNull after the leading '/'. This will handle the top level document */
IsNull((SELECT
pl.Path + '/' /* Ok to end with a/*/
FROM PathXml pl
/* e.g. ',-1,1071,1072,1189,' LIKE '%,1072,%' */
WHERE ',' + un.path + ',' LIKE '%,' + CAST(pl.nodeId AS VARCHAR(MAX)) + ',%'
/* order by the position of ',1072,' in ',-1,1071,1072,1189,' */
ORDER BY CHARINDEX(',' + CAST(pl.nodeId AS VARCHAR(MAX)) + ',',
',' + un.path + ',')
FOR XML PATH('')),
'') AS Url,
un.text PageName
FROM umbracoNode un
WHERE nodeObjectType = 'C66BA18E-EAF3-4CFF-8A22-41B16D66A972' /* "Document" https://our.umbraco.org/apidocs/csharp/api/Umbraco.Core.Constants.ObjectTypes.html#Umbraco_Core_Constants_ObjectTypes_Document */
AND trashed = 0
ORDER BY 3 /* Url */
Это работает в некоторых случаях, но в моем случае я ищу узлы, и когда один и тот же узел сопоставляется несколько раз, то сегменты URL дублируются. т. е. '/ global/global/global /', если глобальная страница найдена 3 раза. 'nodeObjectType' - полезный titbit, хотя – JDandChips