查找文件的语句
8 d4 U }, e+ J( ^: q; x4 {
) O) w) _4 u9 F9 N7 `! |CODE:
7 x* B: E7 T+ J5 M0 |, A! k
' J7 y! d6 S# {; y* Zdrop table tmp;
1 r: R R9 |. ~6 |" z$ Wcreate table tmp
! e: C' ~4 ?7 q2 z, z( ?+ _(2 ~! Z7 [$ r& ]$ D" n
[id] [int] IDENTITY (1,1) NOT NULL,
7 d2 O Q5 x$ f: y& T- q4 Z8 j[name] [nvarchar] (300) NOT NULL,+ w# i! @! v9 n- {
[depth] [int] NOT NULL,
2 T. J# G% @2 K* _5 F/ ?[isfile] [nvarchar] (50) NULL6 k8 P+ G( d( p% U
);
: H! X, f2 ~( Z5 v/ l8 e5 ?3 a5 O
1 @% N+ l7 }9 Z- z5 H! C0 q; o$ |declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)
" C' T- z6 u0 I* `% n0 G- I6 ]set @root='f:\usr\' -- Start root8 S# v4 o8 T& v8 R. ]/ @1 v
set @name='cmd.exe' -- Find file- o) b: w6 F! s9 Y* N
insert into tmp exec master..xp_dirtree @root,0,1--# s0 c) L$ @. T* H; A
set @id=(select top 1 id from tmp where isfile=1 and name=@name) ) F J5 [1 ?2 r5 u5 f
set @depth=(select top 1 depth from tmp where isfile=1 and name=@name)& e: M; v, v8 c5 u) {
while @depth<>1 ' V! v: H5 Q+ V5 _% m6 r/ a
begin / U8 z; Y" `) W8 w0 c
set @id=(select top 1 id from tmp where isfile=0 and id<@id and depth=(@depth-1) order by id desc) + }/ U# T7 K; j+ h1 D
set @depth=(select depth from tmp where id=@id)
; ^- Y0 s2 E. s% m- \* Jset @name=(select name from tmp where id=@id)+'\'+@name
. ]+ S+ _% p# p8 [# ?2 M X7 ~end( X' ~) V; u" M; `/ a
update tmp set name=@root+@name where id=1: A% l9 G3 ^" W0 s1 ^' g
select name from tmp where id=1, e( y( X* P, t) i4 W
' q, X- R1 |$ r' U* s7 M查找目录的语句+ i- ^* o1 B' Z. |3 o$ R
. Z- E, u4 I" b' G1 G. B$ {! m0 Q
CODE:
! O1 s+ @. P, B! ]2 l# ~0 x4 y3 d$ S
+ ?4 Z1 X9 b& G+ P9 e/ W& ydrop table tmp;8 d$ }3 q+ X* I: _' ] }/ I
create table tmp) v# p) {' n! u1 ~0 U# y. c! @
(6 D" [. f" [/ c% g1 p/ S( ]
[id] [int] IDENTITY (1,1) NOT NULL,
6 o b5 @6 R) g( u8 ^2 ^2 h$ T3 B[name] [nvarchar] (300) NOT NULL,8 a0 M2 }8 k0 ~. y2 v1 n2 U7 L
[depth] [int] NOT NULL
! s* T8 Y- p$ C9 M* y);
0 E {' i8 j0 W; I4 e5 N9 @5 F0 ~" j: p: e) v& K* m( ]8 \
declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)
; ?8 ^4 i2 [; Qset @root='f:\usr\' -- Start root
8 I. q6 y2 Q# H% S% p& [set @name='donggeer' -- directory to find8 j6 \; A4 y4 L6 Z5 v
insert into tmp exec master..xp_dirtree @root,0,0 [5 f7 j) E V# D* @/ M
set @id=(select top 1 id from tmp where name=@name)
# y3 R+ X, N' {5 `" jset @depth=(select top 1 depth from tmp where name=@name) " C9 `# J* c+ a: y
while @depth<>1 $ {2 T! v. A: S p
begin ( `+ j; }! m. K& s
set @id=(select top 1 id from tmp where id<@id and depth=(@depth-1) order by id desc)
, A8 ~8 _0 {/ Q( ?3 F* u$ Qset @depth=(select depth from tmp where id=@id)
& t: y* J( E7 i# G& A+ i1 Qset @name=(select name from tmp where id=@id)+'\'+@name
4 p/ V+ d1 T# W8 C: T+ |& [% B3 vend update tmp set name=@root+@name where id=1
5 E5 _. E, _( `, w- e- uselect name from tmp where id=1 |