2016-07-16 3 views
0

SQL Serverデータベースには、FolderFileという2つのテーブルがあります。すべてのサブフォルダとファイルを取得するストアドプロシージャ

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はありますか?あなたがそれを検索するならば、インターネットにも大量の助けがあります。 – Tony

+0

私はフォルダテーブルのすべての子を見つけているCTEを持っていますが、フォルダ内のすべてのファイルとフォルダを取得できるようにファイルテーブルの結合も行いたいと思います。 – user2272865

+0

質問に必要なコードを追加してください。 – Tony

答えて

1

問題にアプローチする別の方法は、単一のテーブル内のすべてのオブジェクト(ファイルとフォルダ)を置くことであろう。フォルダは何であるかを示す属性を持ちます。これは、Windows、Linux、Macなどのファイルシステムがどのように問題を処理するかです。

既存のコードでは、フォルダとは何かを示す属性(列)を付けて、すべてのファイルとフォルダを検索します。

関連する問題