我在SQL Server数据库中有两个表,Folder
和File
。
我需要一个存储过程来返回文件夹中的所有文件和文件夹。
示例:
exec GetFileAndFolders @FolderID
Declare @FolderID uniqueidentifier
set @FolderID = 'b575050d-374b-e611-9d2c-000c29e7670f'
;WITH hierarchy_cte (ID, Name, ParentID) as
(
SELECT
e.folderId, e.name, e.parentId
FROM
folder as e
WHERE
e.folderId = @FolderID
UNION ALL
SELECT
e.folderId, e.name, e.parentId
FROM
folder as e
INNER JOIN
hierarchy_cte as h ON h.ParentID = e.folderId
)
SELECT ID FROM hierarchy_cte
答案 0 :(得分:1)
解决问题的另一种方法是将所有对象(文件和文件夹)放在一个表中;用一个属性来表示什么是文件夹。这就是Windows,Linux,Mac等文件系统处理问题的方式。
然后,您现有的代码将找到所有文件和文件夹,并附加一个属性(列)来表示文件夹。