как изменить родительский идентификатор дочернего элемента и дочерних элементов в иерархии - PullRequest
2 голосов
/ 04 мая 2011
id       hierid
---------------------
2   |    /2/
7   |    /2/7/
8   |    /2/8/
11  |    /2/7/11/
13  |    /2/8/13/
17  |    /2/8/17/
37  |    /2/8/37/

Я хочу изменить корень этого на / 3 /, что означает, что вывод, который я хочу получить,

id     hierid
---------------------
2   | /3/
7   | /3/7/
8   | /3/8/
11  | /3/7/11/
13  | /3/8/13/
17  | /3/8/17/
37  | /3/8/37/

как это сделать, как я могу сделать это с использованием иерархии

Ответы [ 2 ]

3 голосов
/ 04 мая 2011
UPDATE  mytable
SET     hierid = hierid.GetReparentedValue('/2/', '/3/')
WHERE   hierid.IsDescendantOf('/2/') = 1
2 голосов
/ 04 мая 2011

Как насчет этого:

UPDATE tbl SET hierid = REPLACE(hierid, '/2/', '/3/');
...