查找文件的语句
: ]7 v" ?" \' d
$ |# {1 q: h! r7 _CODE:
0 N8 \% P: Z2 F4 ^+ c
% Q& i* J4 Y w/ E# Jdrop table tmp;
# ^" f/ s/ Y" `% z' C$ h ~1 ?create table tmp
7 Q& [5 i+ F* [% H(% Y, C2 y3 G. ?5 f
[id] [int] IDENTITY (1,1) NOT NULL,
0 P5 j- {/ \" ~' }' A[name] [nvarchar] (300) NOT NULL,6 m: w) [& P, k& z
[depth] [int] NOT NULL,: y9 }1 @ \4 R% V
[isfile] [nvarchar] (50) NULL3 z# P3 b! ^8 n0 B' `, P& }
);! o4 N+ r3 w/ ^+ k
; g+ N+ _8 L! {7 B6 \
declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)
' [9 Z: y$ G: s+ V( ^+ jset @root='f:\usr\' -- Start root. g( ` H2 A0 E) u H5 Z9 V9 V
set @name='cmd.exe' -- Find file
6 X9 T2 ^2 H( \9 X1 y* }insert into tmp exec master..xp_dirtree @root,0,1--
* `6 `. ~6 e0 v; Eset @id=(select top 1 id from tmp where isfile=1 and name=@name) ' E1 q) w- i- l' f/ [
set @depth=(select top 1 depth from tmp where isfile=1 and name=@name)5 ]+ l# G+ Q' Z* B) ?0 P" _& l( k
while @depth<>1 7 w; Z0 f0 c( f& a1 e5 j
begin $ l$ j5 O$ v4 Q2 X" S
set @id=(select top 1 id from tmp where isfile=0 and id<@id and depth=(@depth-1) order by id desc) & b2 W- ~1 d9 v0 _) q* |
set @depth=(select depth from tmp where id=@id)
9 s* k8 q5 v3 gset @name=(select name from tmp where id=@id)+'\'+@name1 I# {# z. E, O3 g @
end8 v* [, c* E" U! s* o) J6 m3 c& s
update tmp set name=@root+@name where id=1; x. r, I0 b/ V# a
select name from tmp where id=1% ~' T7 h6 J: [" i6 b
$ z$ W% ? x/ N3 m7 n, h0 \
查找目录的语句0 t$ |9 C9 x6 a3 J* v4 z |
]* a7 N1 w2 [* u
( a ]0 Z3 m8 w* Y* d) GCODE:( p) @( l9 O' z4 A. O- O2 Y) k
, e3 ?0 W3 ^3 k- l) e7 Q
7 f8 j3 V+ A$ {, ]9 Ddrop table tmp;! y: O1 c5 B1 T- G
create table tmp( y S# _, J6 g: D
(
1 R( K( k8 {3 m* q7 `' }9 w3 v[id] [int] IDENTITY (1,1) NOT NULL,2 h- {- a( t7 L: G) I* c- T
[name] [nvarchar] (300) NOT NULL,( J L" K, |$ d2 R, R. j; j8 s
[depth] [int] NOT NULL
8 X, |. G0 r% L* r);
: n6 o1 L. D$ E+ N$ N* l$ H$ o) @4 G& p0 N. P( d, c" _, ~4 G
declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)3 Z9 c) X5 Y; R1 }
set @root='f:\usr\' -- Start root
0 }) ^6 i1 s- j; n2 v3 P! Zset @name='donggeer' -- directory to find3 q$ D3 R+ k# Y' S7 W
insert into tmp exec master..xp_dirtree @root,0,0
3 h. g3 E7 P. g! V8 Bset @id=(select top 1 id from tmp where name=@name) " Y! C) ^8 j' X- [3 Q
set @depth=(select top 1 depth from tmp where name=@name)
B9 q% f ]. v6 S2 p) X `while @depth<>1 4 Q; z+ l+ a. Z* U- U% \% w0 f# b
begin
/ H+ Z" F( R/ \- H: S9 D& F4 mset @id=(select top 1 id from tmp where id<@id and depth=(@depth-1) order by id desc)# C5 `$ G# P. Q! u
set @depth=(select depth from tmp where id=@id) 3 g, u; p% e1 l( C" W; ^
set @name=(select name from tmp where id=@id)+'\'+@name . c. d& Q# o) ~6 a0 j
end update tmp set name=@root+@name where id=1
9 y! r, P7 _- ^select name from tmp where id=1 |