【发布时间】:2010-12-09 08:36:16
【问题描述】:
我正在尝试列出虚拟目录及其子目录中的所有文件。这可能是有下属的公司的员工,这不是文件系统。也许递归存储过程可能不是答案。
场景:
- 目录表:
DirId, ParentId - 文件表:
FileId, DirId
ParentId 是父目录,根目录有parentId = NULL...认为这是不言自明的。
现在的问题...我想要一个目录及其子目录中存在的文件列表。
对于一个目录,我会创建一个存储过程:
SELECT * FROM Files Where DirId = ????
那么我将如何创建一个包含子目录的存储过程?目前我正在使用 C# 代码并遍历每个目录。我更喜欢使用存储过程……除非你证明我错了。
【问题讨论】:
-
或许可以考虑使用Recursive CTE query。
-
你想通过 SQL Server 访问文件系统???这非常通过应用程序代码更容易和更好地完成。你能解释一下在 SQL 中这样做解决了什么问题吗?
-
为什么要使用存储过程来完成显然更适合在 C# 之类的代码中执行的任务???
-
我正在考虑创建一个存储过程供 NTiers 使用,只是认为我使用存储过程更快、更高效。如果普遍的共识是使用代码,那很好。
-
这不是文件系统!!!更多在特定文件夹中上传的文件的数据库条目。
标签: sql-server stored-procedures recursion