我在SQL Server中的一个表中使用了estrarchyID数据类型。

现在,我想改变一排的父亲,但是当我更改其所有后代层次结构时,必须根据此更改。

是否有一个功能可以做到这一点,否则我必须自己改变所有这些功能。如果我需要这样做,最好的方法是什么?

提前致谢

有帮助吗?

解决方案

使用“ 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)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top