SQL Server のテーブルの 1 つで Hierarchyid データ型を使用しました。
今、行の 1 つの父を変更したいのですが、それを変更すると、そのすべての子孫 HierarchyId はそれに応じて変更する必要があります。
それを行う機能はありますか、それともすべて自分で変更する必要があります。それを行う必要がある場合、最善の方法は何ですか?
前もって感謝します
SQL Server のテーブルの 1 つで Hierarchyid データ型を使用しました。
今、行の 1 つの父を変更したいのですが、それを変更すると、そのすべての子孫 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)