2011-05-04 21 views
1
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 /這意味着我想要得到的輸出是如何改變孩子和subchilds的父ID在HIERARCHYID

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/ 

這樣怎麼能我把它用HIERARCHYID

回答

2
UPDATE mytable 
SET  hierid = hierid.GetReparentedValue('/2/', '/3/') 
WHERE hierid.IsDescendantOf('/2/') = 1 
1

做這個怎麼樣:

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

UPDATE TBL SET hierid = REPLACE(hierid.ToString(),'/ 2 /','/ 3 /') – Nighil 2011-05-04 14:47:40

+0

啊,謝謝。我沒有抓住那個。 – Nik 2011-05-04 14:56:00

+0

,因爲它是hierarchyid,所以想使用ToString()轉換爲字符串 – Nighil 2011-05-04 14:59:49