我有下面的表格结构,它模仿了FileExplorer中的文件夹层次结构(就像category-subcategory)。现在,我的要求是通过复制根容器id (到根文件夹的所有子文件夹)来更新根文件夹的所有子文件夹(直到N级)。
我知道如何更新到单个级别,但不能泛化update语句来影响最多n个级别。任何帮助都将不胜感激。谢谢
发布于 2020-05-20 18:49:35
我已经能够使用CTE达到预期的效果。下面是我用来实现所需结果的代码片段
;WITH MyCTE
AS ( SELECT FolderId, FolderName, ParentFolderId, FK_ContainerId [RootContainerId],
FK_ContainerId
FROM tblFC_Folders
WHERE ParentFolderId IS NULL
UNION ALL
SELECT t.FolderId, t.FolderName, t.ParentFolderId, MyCTE.[RootContainerId] AS
[RootContainerId], t.FK_ContainerId
FROM tblFC_Folders t
INNER JOIN MyCTE ON t.ParentFolderId = MyCTE.FolderId
WHERE t.ParentFolderId IS NOT NULL )
UPDATE tblFC_Folders
SET FK_ContainerId = MyCTE.RootContainerId
FROM tblFC_Folders t INNER JOIN MyCTE ON t.FolderId = MyCTE.FolderId
WHERE t.ParentFolderId IS NOT NULL AND t.FK_ContainerId IS NULL
https://stackoverflow.com/questions/61918998
复制相似问题