Я использую T / SQL в SQL Server 2008
У меня есть таблица MyTable со следующими столбцами:
CHILD
PARENT
HIERARCHY
В настоящее время столбец HIERARCHY пуст, но я хотел бызаполните его.
У меня есть некоторый код, который создает идентификатор иерархии (адаптированный из кода в Рекурсивные дочерние / родительские запросы в T / SQL ). Этот код работает очень хорошо.
with n(CHILD, PARENT, GENERATION, hierarchy) as (
select CHILD, PARENT,0, CAST(CHILD as nvarchar) as GENERATION from MyTable
where PARENT=1
union all
select nplus1.CHILD, nplus1.PARENT, GENERATION+1,
cast(n.hierarchy + '/' + CAST(nplus1.CHILD as nvarchar) as nvarchar)
from
MyTable nplus1 inner join n on nplus1.PARENT=n.CHILD and
)
Я могу увидеть результаты этого запроса, выполнив:
select CHILD,GENERATION,Hierarchy from n
Однако я хотел бы вернуть результат в столбец Hierarchy в MyTable.Этот код не работает!
update MyTable e
set HIERARCHY='/'+(select hierarchy from n where n.CHILD=e.CHILD)
Кто-нибудь знает, как это сделать?Спасибо!