SQL遍历文件夹 / 文件,返回文件夹列表信息
2015-08-11 21:28
351 查看
/*
EXEC master.dbo.xp_cmdshell 'copy c:\a.txt d:\log\' --- Copy EXEC master.dbo.xp_subdirs 'd:\' --- 显示指定目录下有哪些文件夹
EXEC master.dbo.xp_dirtree 'd:\', @depth = 1 -- 显示指定目录有哪些子目录 (@depth = 1 表示只遍历深度为 1 的目录;此变量不填写,就遍历所有子目录) EXEC master.dbo.xp_cmdshell 'dir /b/s d:'
*/
DECLARE @Path nvarchar(260)SET @Path = 'C:\Downloads'IF RIGHT(@Path, 1) <> '\'SET @Path = @Path + '\'IF OBJECT_ID('tempdb..#File') IS NOT NULLDROP TABLE #FileCREATE TABLE #File(id int IDENTITY, --编号directory nvarchar(260), --路径depth int, --深度,相对与@pathIsFile bit )--0文件夹1文件名成INSERT #File EXEC master.dbo.xp_dirtree@path = @path,@depth = 0,@file = 1DECLARE @depth int, @depthMax intUPDATE #File SETdirectory = @Path + directoryWHERE depth = 1SELECT@depth = 2,@depthMax = MAX(depth)FROM #FileWHILE @depth <= @depthMaxBEGINUPDATE A SETdirectory = (SELECT TOP 1directoryFROM #FileWHERE depth = @depth - 1AND IsFile = 0AND id < A.idORDER BY id DESC) + N'\' + directoryFROM #File AWHERE depth = @depthSET @depth= @depth + 1ENDSELECT * FROM #File
相关文章推荐
- 数据库之Case When
- Redis
- MySQL的分页
- 工作流中切换数据库时---“禁止流转”
- MySQL建议列属性尽量为NOT NULL
- SQL Server 2008下日志清理方法
- Excel中的数据导入到SqlServer数据库中
- sql中更新不同库中的表
- 亚马逊AWS学习——为oracle类型的RDS数据库部署数据
- SQL Server:“数据收缩”
- MySQL数据库事务隔离级别(Transaction Isolation Level)
- SqlLite 基本操作
- 8月11日----数据库、serverlet
- 数据库日常维护-CheckList_02有关数据库备份检查
- sql之截取字符串函数
- 简单SQL语句
- Unity3D 连接MySQL数据库笔记4-Unity3d代码
- ORACLE EBS系统中FORM的编译
- 使用DbUnit进行数据库操作的单元测试
- 探讨Mysql中OPTIMIZE TABLE的作用详解