【问题标题】:Updating "Hierarchyid" in SQL Server在 SQL Server 中更新“Hierarchyid”
【发布时间】:2023-03-19 01:52:01
【问题描述】:

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

现在我想更改其中一行的父亲,但是当我更改它时,它的所有后代 HierarchyId 都必须根据该更改。

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

提前致谢

【问题讨论】:

    标签: sql-server hierarchyid


    【解决方案1】:

    使用“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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多