标题:[转载]挑战所有SQLServer版的SQL水平贴
只看楼主
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
 问题点数:0 回复次数:11 
[转载]挑战所有SQLServer版的SQL水平贴

标题:不用其它语言脚本,用SQL得到服务器上文件路径!!


已知:这个存储过程可以把文件名和路径读出

exec master..xp_dirtree @path='D:\目录',@depth=0,@file=1--参数:目录名,目录深度,是否显示文件

问题:现在想得到'D:\笨狼代码收藏集'目录下的全部深度的文件路径[含子目录],如下表:

id[编号] dir [全部文件全路径]

1D:\笨狼代码收藏集\根目录下文件1.txt
2D:\笨狼代码收藏集\算法\算法目录下文件1.txt
3D:\笨狼代码收藏集\算法\算法目录下文件2.txt
4D:\笨狼代码收藏集\其他\其他目录下文件1.txt
5D:\笨狼代码收藏集\其他\xml\xml目录下文件1.txt
。。。。。


可以用递归和非递归,方法不限。

搜索更多相关主题的帖子: SQL 水平 挑战 
2006-10-24 17:05
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 
没人知道吗?

[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-10-24 17:46
bob7789
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-4-10
得分:0 
那楼主是出题考我们吧!~



贴出答案来我们学习,学习!~~
2006-10-25 11:26
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 

我在别的论坛看到的,我有份答案,可是你们就不能答答吗?难道这个论坛就没有高手吗?


[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-10-26 13:31
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
得分:0 
解决的关键应该在于Openrowset语句的应用

至于递归循环出上级目录不是什么很复杂的东西,做ERP什么应该都用到过类似的语句

2006-10-26 16:39
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 
Openrowset???
也没人回答,唉。。。。
还是把答案帖出来吧!

[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-10-27 19:33
mydream
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-5-23
得分:0 

楼主把答案贴出来吧

2006-11-03 10:56
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 

DECLARE @Path nvarchar(260)
SET @Path = 'D:\新建文件夹'

IF RIGHT(@Path, 1) <> '\'
SET @Path = @Path + '\'
IF OBJECT_ID('tempdb..#') IS NOT NULL
DROP TABLE #
CREATE TABLE #(
id int IDENTITY,
directory nvarchar(260),
depth int,
IsFile bit)
INSERT # EXEC master.dbo.xp_dirtree
@path = @path,
@depth = 0,
@file = 1

DECLARE @depth int, @depthMax int
UPDATE # SET
directory = @Path + directory
WHERE depth = 1
SELECT
@depth = 2,
@depthMax = MAX(depth)
FROM #
WHILE @depth <= @depthMax
BEGIN
UPDATE A SET
directory = (
SELECT TOP 1
directory
FROM #
WHERE depth = @depth - 1
AND IsFile = 0
AND id < A.id
ORDER BY id DESC
) + N'\' + directory
FROM # A
WHERE depth = @depth
SET @depth= @depth + 1
END
SELECT * FROM #


[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-11-13 11:49
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 
绝对精华

[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-11-13 11:50
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 
没人顶吗?

[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2006-11-13 16:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-98413-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048989 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved