0
我在SQL Server的一個表中使用了Hierarchyid數據類型。在SQL Server中更新「Hierarchyid」
現在我想改變其中一行的父親,但是當我改變它的所有後代HierarchyId必須根據那個改變。
有沒有這樣做的功能,或者我必須自己改變所有的功能。 如果我需要這樣做,最好的方法是什麼?
在此先感謝
我在SQL Server的一個表中使用了Hierarchyid數據類型。在SQL Server中更新「Hierarchyid」
現在我想改變其中一行的父親,但是當我改變它的所有後代HierarchyId必須根據那個改變。
有沒有這樣做的功能,或者我必須自己改變所有的功能。 如果我需要這樣做,最好的方法是什麼?
在此先感謝
使用「GetReparentedValue」函數來執行此操作。
這是我爲我的數據庫中的表:
DECLARE @FatherNode AS _INT_
SELECT @FatherNode = [PLC_PLC_ID]
FROM [dbo].[Place]
WHERE ([PLC_ID] = @PLC_ID)
UPDATE [dbo].[Place]
SET
[PLC_Tree] = [PLC_Tree].GetReparentedValue([dbo].[PLC_IDToTree](@FatherNode),[dbo].[PLC_IDToTree](@PLC_PLC_ID))
WHERE
([PLC_Tree].IsDescendantOf([dbo].[PLC_IDToTree](@PLC_ID)) = 1) OR
([PLC_ID] = @PLC_ID)