2016-07-16 125 views
0

我在SQL Server數據庫中有兩個表,FolderFile獲取所有子文件夾和文件的存儲過程

enter image description here

enter image description here

我需要一個存儲過程返回我的文件夾中的所有文件和文件夾。

實施例:

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

你有任何SQL來顯示你已經嘗試過,爲什麼它不工作?如果您搜索它,互聯網上也有大量的幫助;嘗試谷歌與「sql遞歸查詢」 – Tony

+0

我有一個CTE與我找到一個文件夾表的所有孩子,但我想在文件表上做一個連接,以便我得到一個文件夾內的所有文件和文件夾。 – user2272865

+0

請添加您對問題的代碼。 – Tony

回答

1

的另一種方法來解決這個問題將是把所有的對象(文件和文件夾)的一個單一的表;用屬性來表示什麼是文件夾。這就是Windows,Linux,Mac等文件系統如何處理這個問題。

然後,您現有的代碼將查找所有文件和文件夾,並使用其他屬性(列)來表示文件夾是什麼。

相關問題