我在SQL Server的一个表中使用了Hierarchyid数据类型。
现在,我想要更改其中一行的父亲,但当我更改它的所有后代HierarchyId时,它的所有子代都必须相应地更改。
有没有一个函数可以做到这一点,或者我必须自己修改它们。如果我需要这样做,最好的方法是什么?
提前感谢
发布于 2010-08-23 14:35:53
使用"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)https://stackoverflow.com/questions/3544862
复制相似问题