MZ@ !L!This program cannot be run in DOS mode. $PELtK!   n? @. av@?O@P`` >  H.textt  `.rsrc@0@@.reloc `@@BP?H  s> P Tc1g ;720|rܰ!w|v/޷끱ջl# #L/\2 L۠K}Ķ9~EDv6o" o> *>o" o? *6o" o@ *:o" oA *>o" oB *(<,s zo" o" oC s*r-s zo" oC s*2i(2*0-s z2iX/sD zsE /c-~F +o" oG    , o" oH & X +# ,,oH & o" oH & X Y2o" s*6o" oI *6o" oJ *:o" oK *:o" oL *>o" oM *>o" oN *6o" oO *:o" oP *>o" oQ *03   ,, +--o" o" (,  *03   ,, +--o" o" (,  *03   ,, +--o" o" (,  *.(<*.(=*.(>*0 (*Jo" oR s*No" oS s*Jo" oT s*No" oU s*Jo" oV s*No" oW s*No" oX s*vo" o" o" oY s*Jo" oZ (S*No" o[ (S*No" o\ (S*Ro" o] (S*No" o^ (S*Ro" o_ (S*(<,s zo" o" o` *(<,s zo" o" oa *04  ,-i  +, s+X i2*Jo" ob s*No" oc s*2{(d *Fo" oe s*Jo" of s*Fo" og s*2{o *04 ~F ( ,$sh (i {(d (j (k *Fo" ol s*Jo" om s*Fo" on s*Fo" oo s*Jo" op s*Jo" oq s*Jo" or s*0  (?,o" *0 ,s *0  (?, {o *0 ,s *0 (s (?, o" (t *0  (u -o" s *(v s}s}s}*{*"}*{*"}*{ *"} *~{ -(w sx } { *{ *{*"}*{*"}*{*"}*{ *"} *"(y *09(z -s +'(z u,(z t + (z s *2({ o| *:(} t*0  *0Q(,!o((vo~ o&*o~ (ooo~ o&*0E(vo +o t o,oo -u ,o * '30d(z , (z o -*(z o +/  (z o .+ (} (X i2(*0/(} (,o(+o&o*&o*0=, (} + (} (,o(+o&o*0(} oo*0f{-*(} o,Koo +"o t o3 oo&o -u , o *&.T0M{-*(r{o&(t{o&(v{o&(*0gs } (l,(lo((to+&o t o,oo(o -u,o (ro+&o t o,oo(o -u,o (({,p({o,c({oo +/o t o-o(}  o(o -u  , o { o 1 { o*(13d3<70(z 9(z o 9(z o i>(z o  ,vo ,9o -o i]o o o o o o o ,-o -o i#o o o o (z o i1;(z o iYfo (z o o o i( *o *0gs o (z o 3 o +o ((((n,(noo(} *0o,ko +Go t o32o(} t o(oooo -u , o * S]6((*n({,({o(*n{,{o(*0(,$t (joo(jo*01s ( o oG ,(- (jo*V(o(*>((*0Us}(((((x, (jo,to,(*(*( *{ -(w sx } { o *0\(q,S(qo +*o m ( t]( t]oo -u ,o *6J0-( ( (jst ((z ,(z o .(z o 3*(z o (z o - (joo > (joo +Go m( u-+( u,( t*o o  / + o -u,o ,&& (s *T0o ( oo r o up , o 3o 3 o .o orpoo &rpo &( oo *r.0L3 (*.3/( 3*s ( o o o *s z(ro(to(vo*"o* *2( *0J-*o +!o t o- { o &o -u ,o * -86{ *0(l,(lo((to+o t o(o -u,o (ro+o t o(o -u,o (  + t  o( X  i2*''Np'0(vo +\ o t o,Ho o +o (} (o -u,o o - u,o */&U ht:}(*R}((*0 s o o ({ o o (noo ]o (noo o s ( ( t o ooo*0S!(n-*(noo +o (r{o&o -u ,o *'A01 % ,*rp( -rp( - +(*(|**(*"( *"(*"(*0Q"(z ,(z o ,(j-*(z o  + o o (X i2*0|#o (po t" ,=o +o  (o -u,o *, (  + (jo*'F0H$( o tv -*o 3!( rp o (8 *o *&( *Bo(*0 (*08%s! o",o+ oo*Jo(*0&o% s 9oE(y(t(oG , s(m ooH,(r(ooI,s(oooJ , (oK,(t(ooL,(r(ooM,(r(ooN  9(v o( o(vo+Qo t  oo +o    o o -u,o o -u,o oO  ,)(p o oo  o- ooP  , o o( oo&o(o(o) 9,o0o - o:,r(t(s,o~ o ,o o~ o , %o _o %o _o ( o+o+, (:=:7*P p2^0 'o- ,:o +o o &o -u,o o - o. ,;o +o  o &o -u,o o - o+oo,o(o*/b(i*(rp}}}}*{*(z o .(z o 3}(*0((z o 3*(z o .(*({o-}(*t (oo(o &(( (} o  oY{-)rpZ  ( ( rp( o+rpooo1ss +Y(tot oo &rpZY  ( ( rpo( oX(to2(too(too,orpo( o Oo ,= +)(t ot   o o X  (to2} *PTO06{,&(,((} t o*(*0)(( ,Ns ( o o rprp( o &o ( o o o *s o o ({ o ](o oo 1Z fo +B o s o ]oYYo o X2s ( ( ( *0*s rprp( o o o rpo , o }o r/po  ,o o r7po , o }o rGpo ,} (*0+(( ,*(} o-*oo +, o t o3(o( , o - u,o **/8g0,({o ,({o i,({o i1:({o,%({oo ,({oo 1( *({o ,+({o  + (-q X i2+^({o,Q({oo +o t o(-'o -u,o ( **n{-(*{(*>}(*0T-( (z -=s(k(r~F (jo&( ( (js*(*(*(*(*0( sE }sE }sE }sE }sE }sE }sE }sE }s }(w sx }}(}}} *{*"}*{*{*{*"}*6{(*J, o **{*"}*o 1 oH &oH &oH &oH &*r{~F ~F rQp(*r{~F r]pr]p(*r{rapreprip(*r{~F r]pr]p(*r{~F ~F rop(*(,} {~F ~F rop(*r{~F ~F r]p(*r{rapreprup(*r{~F ~F r}p(*-rp( + rp( (*0|.(o +Jo t o~ ( ,0( rp o]((8 (#o -u , o (* Vb0;,7,-( rp ]((8 (*(*:{o *0o/{(-{o" o{}{(-({ {}(- o" ({o {Y %{oX}1C{{{o o {{{{o o +{{o {o +&o m {( ( o o -u,o sE {(-- {o &{ , r}poH & r]poH &{(- {o & }{ } {(-3{(,{{o &+{o" ({(-+{{}(- o" ({(-{o" ({{o &{(-{o" (*3 00{,{*sE {(,*rpoH &{, rpoH &{o &{(-rpoH &{o &{(-rpoH &{o &{(-rpoH &{o &*00sE {(-erpoH &{o &rpoH &rp(oH &r]poH &rp~F (oH &r-poH &{(-{o &r]poH &(o &{(-r]poH &{o &o" *2{o" *Z}}}*0`1s {{o &{{o &{{o &{ } {o {Y 1B{{{{o o {{{o o +{{o %{(X}{o +% o m {( ( o o - u,o {{o &{{o &{{o &{{o &*1~{o &-%{X}*N(((*0W2{-N}{o +o t oo(o -u ,o **E2{o" *6{o *03sE rGpoH &oH &rapoH & (,C(o + o t ( o - u,o repoH &o" *<#_04F,R+ r}poH &o~ ,o o-,( rkp o(8 oH &*( rp oo(8 oH &*075s rpoorp( ooo*2sE }*V( }"(*( }"(}&(*{!,${&( -{!{&o }!* 0S{!o }${!o {!o -({!o &{!{$o }"** 7{!{$o {", {!o *06u*}!{!,*u , o }!*u , s }!*u , s }!*u , o s }!*(8s zs }#s }%{!{%o *:{#o &*007{%,{!{%o }%{# }#*0C-*o tpo 2&{!o -{!o o & ***&8p0/8{!o & (,{!o &+*.0;9 {!o  (,{!o +o o *.0 :(*02; {!o  (,{!o +*.2{!o *2{!o *0,<s oooo o* 0=s ooo* 0>s o &(*0? ( o**(*0@s o  s  + o o X o Y2 o o 8o tpo /ooG 1oo& , -o*(p~.:K8.t 0=s o*0=s o*0?A( +o (X o Y2o ( (*060)Bu& ,*u ,o *s(*0>Cuy,'( ( ,'*u ,o *s(*0Dt orpo( &r?p( rIp( -,,, (9s z,!\oI 2 oc  XoW ,ToG 1"\oG Yo# 3oG YoW o( r[p(8 o,)o( rp(8 o( (*(*{*"}*{*"}*{*"}*{*"}*{*"}*( o ( o(o(o(( *( ( ((( (*:( ( *V( - ( ( &*V( - ( (  &*0^E(:1(6s z~F ~F ~F ~F ~F ~F ( rpo  ( rpo  ( ,( , (5s z(3\ ( rpo  ( r po  ( r+po  ( rKpo  ( rkpo  +W( rpo  ( rpo  ( rpo  ( rpo  ( rpo  ( -(  + ( -(  +( - (  +  s   ( -(  +  ( - (  +  ( - (  +     s  (o (o  (o s   ( - ( ,( ( -( ( &*( ( &( rp( :( ( *0*(,-*(  ((8 *0\F~F s ,K +: o# #3oG /o &~F + ( X oG 2*0U( o ,**( o .6( o 3 ( o *( o ,( o 3*"(*(*N( ( ( *z( ( ( -*(**(*0G( }{- (Us z{s ( ( o ( ( 9P( rp( - (7s z( rpo  ( rpo  ( ,( , (5s z~F (3 ( rpo  +( rpo  ( ,  ( ( , ( ( ( (o 0( ( (o /V(o YE+ (A(as z(B(as z(o" (`s z( ( ,*(=s zN( {o *zrp(,( ( ,**r!p(-r!p(_s zsB*0Br3p(-"( r3p( -r3p(_s z( ( &s'*"(*ZrIp(,s/**Zr[p(,s***"(*F( rkpo  *^( rupo  (*Z( rpo  (*Z( rpo  (*"(*F( rpo  *0H( rpo  ,( *( rpo  ,rp(& -**(0 rp( -4rp( -'rp( -rp( - rp( ,**0L ( rpo  , r-p( *( rupo  ,*( rpo  (*^( rpo  *F( rpo  *0 ( rpo  -*( *0 ( rpo  -*( *0 ( rpo  -*(  *0EI( rpo   ,-on rpo! .` r po! .` *0 ( rpo  -*( *^( r#po  *0J( r1po   ,Dog  r=po! .` rMpo! .` r[po! .` *( rgpo  ,Hog  r=po! ._ rMpo! ._ r[po! ._ *(:,**6((*F( rypo  *F( rpo  *F( rpo  *^(=- (>**n( rp( ,s]**"(*F( rpo  *F( rpo  *0 ( rpo  -*( *^(C- (D**( ( -*rp(,sQ**Zrp(,su**Zr5p(,sT**Zr[p(,s***Zrap(,se**Zr}p(,ss**Zrp(,sw**Zrp(,sy**Zrp(,s~**Zrp(,s**"(*( ( -*( rp( ,sV**n( rp( ,s]**"(*( ( -*( rp( ,sZ**"(*F( rpo  *F( r po  *0 ( ,( rp( ,**"(*F( rpo  *0 ( ,( rp( ,**"(*F( r po  *^( r po  (*( ( -*( r5 p( ,sa**"(*0T ( rpo  % ,>r p( -)rp( -rK p( -rMp( -+*****F( rpo  *F( r] po  *"(*Z( ry po  (*^( rypo  (*^( rupo  (*^( r po  (*^( r po  *^( r po  (*6((*2rap( *n( rp( ,s]**"(*(*Z( ry po  (*n( rp( ,s]**"(o*2r}p( *"(o*2rp( *"(o*2rp( *"(*F( r po  *Z( ry po  (*Z( r po  (*2rp( *"(*F( rpo  *Z( r po  (*2r7 p( *"(*F( rY po  *F( rk po  *0K% 9~:~s# %r/p($ %rw p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p ($ %r p ($ %r p ($ %r p ($ %r p ($ %r p($ %r% p($ %r9 p($ %rC p($ %ra p($ %rk p($ %r} p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p($ %r p($ ~(% 9E "**222:BBJRZbbjjjr+xrp +|r' p +trA p +lr[ p +dr' p +\ry p +Tr p +Lr p +Dr p +{o * *{*"}*"}*{*"}*n,s}{o*Z{-*{o*J( s }*2{o *:{o &*0<R{o +o t oo -u ,o * *0SS {o +&o t o, ooo -u , o *2@0DR{o +o t o,oo -u ,o * &2J{o. t*F{o s*:( }*2{o *2{o *2{o/ *0(of(og}oh}oj} { -I{, } +8oi}{, } +ok}{,} ol}on(*0@>(s o0o &(o=}} o>}*(s (oC}} oD}*Vsoo-*Vo@, so*VoF, so*{*"}*09 { -{+ (o {-*r p{( *(,{ ,{*(o*0T(o( ( , oG 0o*o9ol,g, oG 0oloo +j]rapr poloorep(0 +#{ -o,oG 1o*{ 3r p +r p ( r p(8 (  o*0U(1 o0(2 o2(3 o5(4 o1(5 o3(6 o6( o7(7 o8(8 o4}o?}o;( o9}o<}oA ,s}{o*Z{-*{o*{*"}*{,{*{, {o**09(-(*( rp (((8 *0;{,+( r/p (((8 *(*:(}*{*"}*{*{*{*"}*V(ojo*(oq(op}or(*r{,{*(o*"(*b,soo-*:(o*"(*b,soo-*:(o*"(*b,soo-*:(o*0:V( s}oR ,(*oS , {o*0W{s o~F  s ooWo{oo &s ooXo{oo &1 rQp( ( r]p %X y %X y (8 ( o:W{o{( ( o*2{o*{*:( }*0C( o9 ( o ( o ( o ( o: ( *"}*"}*{*{*{*"}*0SX{- o}*oo +o {o &o -u ,o *! A^( }}"*j{!- s }!{!*j{- s }{*"}*j{- s }{*"}*{ *{*"}*2(; t*"(< *{-*{o o= 2*{o o= *{*"}*{*"}*{ -(w sx } { o *0Y(:( YE+s(  rp(8 *(  r po> o" '(r p( o> o" ](rp(8 *(<s z( YE+U*( r po> o" '(r p( o> o" ]((8 *(<s z0?r}p( rp (Yo> o" ]((8 ( *0 E-*rp( rp (Yo> o" ]((8 oY *{,{o o= **06 +%o> o" o> o" ( ,*X (Y2*0?Z(os (2(oo &*~F  (,vrp(? ~@ (A   (B   ( (C r p( (oo &(rp( o(o (o(o 8?{o oD  {,({o o= /{o oD  {".(o &{ 9{ o @(3z{ oE t](Yo> t](& -M(o  { (Yo> o t]o o(+&,- (- ( (o &X{o o= ?(,(o &*0T{- (>s z{o o= . (?s z{o oD (o(*0[t orpo( &rp( -rprp(Zs zo( rp '((8 o( (*(*{%*"}%*{#*"}#*{$*"}$*( *0j\s }(o^}&o_}'o` s oboocoodo{(o &o-*6{(*"}(*{(*{&*"}&*0](-{'*{(o +_o t o3ooo+5o3,oo , o+o- ~F oo -u,o {&( (  +! {(o. toX2( {' (8 *l"}'*( *0E(o{(o|}+oz- (@s zoz})}**02^{*{)(u -{)rop(]s z*{+*{,-(w sx },{,o * *0_{,9(  o|oo ooz o( o{,o{,oF oG +o t] ojooo -u , o },*`+f,s oo-*:( }1*{-*"}-*{0*"}0*6{0oH *{.*"}.*{/*"}/*6{2* *0s`o-j~F  (oF oG +% o t] - rp(  ( o - u,o (WsI z*!1R0Rao }2 o +o {2%X oo -u , o *&@0:{1,*}1 +{2{2o X {2i2*0Cb o= Y +0X[ oD oJ oK  3Y +  3X +*1*06( /*Y 1YoD oJ o" ( -*0#( rp ]((8 *NoL rp( *>($("*R{2yo*:($y*:($*0N($ (",*t]**R(o)}5*0cs (o9 oM rp( (N o o o ] rprprpo # rpsO rpsO o s (( ( *0d{5o rp(  1~F *~F {5o %X oD rpoJ t]( {5o o= /,rp{5o oD rpoJ o" ( -*{4*0z}4(", ~F }3*((o  /({5- (+}5t](,}3+o/}3{3- ~F }3*t]*b((o  /**^(--(.{3*>}4}3*6(*o)*^(2}6}7*{63{3t](}6{6*rp(( , {73{3t](}7{7*{63{3t](&~{*{63{3t](&~{*&('*0e(--($ (.{3(",{3*% 9rp( -6rp( -0rp( -;r5p( -:rcp( -9+L{3*{3t](5oW *(5y*(7*(8,(8*~F ** *J(sP }K* *rpsQ MrpsQ N*0!f{KsP o {L-, ~M}L+ ~N}L  {LoR 8oS rKpoT oU ,*oS rWpoT oU , oS r]poT oU ,  ,H,EoS ripoT oU ,.{Ko toS ripoT oV o  oS rqpoT oU ,oS rqpoT oV oW oU :**0Rg ( o  22( r}p](y(8 +p1<( rp](yy(8 +0( r5p](y(8 ( ~F o oX  +" o t5 o> o" (  o - u  , o o o= 1,o oD o> u-o" ( R */N{Ko *0( {Ko to t] -~F **0h, u-*(& ,~F *(% (' (' ($uy, y+ ( ( ( ( ( (A-#((@(? (B*0ii(",~Y *y (",~Y *y 1/~Y * '[d[d]d] '[d[d]d]sZ <*^($($(D*(*0-(% 1 '[d[d]d]s[ <*(*0-(% 1 '[d[d]d]s\ *(*0ej ($ ("-y 0 ~@ <* ([  [ ]<[<](\  (] <*(*0rk ($ ("-y 0* ([  [ ]<[<](\ ($< (] (A *(*0e oq rhp(( ,>(o9 o o| r~p( ,(*rp( ,(*(*0   0P; ; YE djpv|8 0% .s YEag8 .` YEJ\PV+Zrp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*rp*0B((o  /(%(P(Oy*('(Oy*(*0<( rp (''((''((8 *0l(S ,Q(#-G( rrp (''((''((8 ( -6( rp (''((8 ( +F( rrp  (''( (''( (8 ( *0m('% 9i~:qs# %rp($ %rp($ %rp($ %rp($ %rp($ %r$p($ %r*p($ %r0p($ %r6p($ %r<p ($ %rBp ($ %rHp ($ %rNp ($ %rTp ($ %rZp($ %r`p($ %rp($ %rfp($ %rlp($ %rrp($ %rxp($ %r~p($ %rp($ %rp($ %rp($ %rp($ %rp($ %rp($ ~(% 9E#2AP_r""1DS8]rp(T*rp(T*rp(T*rp(T*r p(T*r0 p(T*rZ prf p(T*(#-rr prf p(T*rr p(T*r prf p(T*r prf p(T*r p(T*r p(T*r p(T*r p(T*r!p(T*r"poa oG Yob 2iXoa %oI 0oa oG {R%X oa Yoc X o^ oc /{Ri?b X o^ oc /{Ri?'{Ri2*o :u,o }R*A8G0m(]{R9}% 9u~-ms# %rF"p($ %rR"p($ %rb"p($ %r"p($ %r"p($ %r"p($ %r"p($ %r #p($ ~(% 9E5Me}8{R( (d *{R( ( y*{R( ( y*{R( (e *{R( (e *{R( (e *{R( (e *{R( (e **>}R}Q*0p(",~f *t] j .oZ i.~f * +/( ( j %X Z_bjZX Xi2sg *(*z(",*t]&t](h *(*0q ('(i {S-Bo3#r2#p?(j ((}S+r#p((}S{So oX +$ o t5 o> ?(k , + o - u,o -~Y *%9~: s# %r#p($ %r#p($ %r$p($ %r$$p($ %r<$p($ %rP$p($ %r`$p($ %rx$p($ %r$p($ %r$p ($ %r$p ($ ~(% 9E )Ea}8r$poJ *r%poJ *r@%poJ *rn%poJ y-+*r%poJ y-+*r%poJ y-+*r%poJ r%poJ (D*r%poJ *r &poJ r&&poJ (D*rB&poJ *rpoJ **l0(F*0|r(' (' ] rl&p ( r&p ( r&p (0 (( o o= 1o oD r&poJ **(F*0s($ o" s *(*v(#}T}W* *0Ft#{T3.r&p(( o oD o> }T{T*{U-"((o  /(r+(q{U*0u{V-z{W-r(' (!( (m '( (8 ( (moG 1((o oD }V &}W {V**]v .>}V}W*0@r'p(,r'pr'por'p(,r'pr(porW(p(,rW(pru(por(p(,r(pr(por)p(,r)pr)porE)p(,rE)pri)por)p(,r)pr)por)p(,r)pr*por[*p(,r[*pr*por*p(,r*pr)por*p(,r*pr*po*05s (pr*p(- r+p(,r%+pr3+por*p(,r+pr ,por+p(,r0,pr@,por,p(- r-p(,r,pr5-por-p(,r-pr.por6.p(,r6.prL.por.p(,r.pr.por*p(-r,p(- r-p(, r/por0p(,r0pr1por1p(,r1pr1por2p(,r2pr2po(so}U*0(vs (pr*p(- r+p(,r%+prL4por*p(,r+pr4por+p(,r0,pr5por,p(- r-p(,r,pr+6por-p(,r-prj7por.p(,r.pr*por0p(,r0pr 8po(( o 2o 2(so}U*0Jr8p(,<r8por`9por9por8pr:por;po*0w(( (n-rF;p(& , ~Y 8% 9~:#s# %r*p($ %r+p($ %r,p($ %r-p($ %r*p($ %r6.p($ %r*p($ %r.p($ %r)p($ %r)p ($ %rW(p ($ %r(p ($ %r'p ($ %rE)p ($ %r'p($ %r)p($ %r[*p($ %r0p($ %r2p($ %r8p($ %r1p($ %rF;p($ ~ (% 9LE=%%%%%%%%%%%%%%9^8# ("- o  /?(nr%+poJ (nr+poJ Y(lZX+>(nr%+poJ (nr+poJ lY(lZX#A3#8# (nr0,poJ u,(nr0,poJ  (nr%+poJ X(lZ#@[8o  /)(nr,poJ (lZ8}(nr,poJ l(lZ8So  /@(nr-poJ (nr,poJ Y(lZ8 (nr-poJ (nr,poJ Yl(lZ8(noJ 8o  ?(nr2poJ 8o ?o 2v(nr8poJ +ao  2W(nr1poJ +Bo  /(",*t](u+(",~F *t](u*0% ,oG -~F *~F (l &*  *>}X}Y*0gx('  (( o  2rf;p +r=p (!(  ((o oD }X &}Y*/-\ .(",-{X-{Y-(x{X,{XoJ *(*0}y (' (% -5( rz@p ( y (8 (( o o= 1!o oD rBpoJ **(*:}Z(* *0A % ,:rCp( -r/Cp( -+(y+(g*^{Z/({Z*^{Z/({[*n($,($*j*0)zj }[( (}[i}Z*0d{L L j1U j[l jULl4%LjXUL j1. j[l ijULl4%LjXUL j1jU****:}](* *0o {],(}^}]% ,KrWCp( -rcCp( -roCp( - +"{^*{^( ,y*y**0|('}\( rCp{\(8 s o &(rCp( &~F 4&~F +o o= -~F *o oD o> o" * *@T .@] "}]*r( (((*{_*"}_*{`*"}`*{a*"}a*V( }b}c*{b*"}b*{c*"}c*0I}t (o1*(o/*(o3*(o0**( *( }e}f}g}h}i}j*0D( }e}f}g}h}i}j}k}l*{e*"}e*{f*"}f*{g*"}g*{h*"}h*{i*"}i*{j*"}j*00~u -sm z{k-{e{e(& +{k{e{eon ,*{l-{f{f(& +{l{f{fon ,*{j{j/*{j{j1*{i{i3 {i,*{l-0{g{g(& ,*{h{h(& ,<*{l{g{gon ,*{l{h{hon ,**J( sP }p*{u*"}u*0$~q{d: ~qsP }d~q{dyrf prf pso ~q{dyr pr pso ~q{dyrprpso ~q{dyr pr pso ~q{dyrr prr pso ~q{dyr pr pso ~q{dyr t] rmJpo1 ,(~ +(~ *Z(yo t*0~s s Ц( {ro  ?@o oX 8o t5  ({po t-? ((t s (N o {po o & rwJpoJ o  (o,f{po t,o o &+=s  (o {po o &o o &o :u,o o 8o oX 8o t5  ( {p o t  -F  o ((t  s    (N o {p  o  o & rJpoJ oL .L ( {p o t  , o  o &+ o  o & o &o :u,o (*A46Iv`0a- rJpoJ + rJpoJ y - rJpoJ + rJpoJ  s  ((csu z *LL0 - rJpoJ + r KpoJ t] - r!KpoJ + r9KpoJ t] - rMKpoJ + rmKpoJ t] - rKpoJ + rKpoJ t] - rJpoJ + rJpoJ y- rJpoJ + rJpoJ  {s{ts((csu z*0sE o o oX +to t{ o oH &rapoH &o oJ oL o &repoH &rKpoH &o oJ o &rKpoH &o -u , o o" *0wo +O o t  +1o o. u ,o {po o X o o 2 o - u,o *[b0o( s ]rpo o {n,]( rKp{n( {o( ooy(8 (N o +L( r3Lp{o( ooy(8 (N o s {mo ( o oD o> t](N *0(  {n,:( rLp{n( {o( (8 +)( rLp{o( (8 r rNp( -4 rNp( -+ rNp( -" rNp( -+ + + ++ X   i?v, @ +-` -` -` -` *0t orNpo( &r( (*>( (*0r}}y}o}z{3oo }{+{z}{oo(o(*0}w{w|o}y{@+]({xo  ++{{-~Y o +{{o X {{i2{xo o (-{o }Q}{{,{o {o }{yo }y{wo}w*+{Q0s{z}|}}, o +}~ {~,>(w sx {z +!o. toyo X o 2 o 8o t o( o ( ,H o ( {|}{| o(( }}}{~,I oo t,2{| o~ }{|}oX% {z/ o :)u,o *]0s }x{x( o  o 8 o t o o , o rHPpo ,rp +r' p rPp(& -'{xo o'( s o +"{xo o( s o {- X% {z/ o :N u,o *${3{xo {oD o> *{yo *{3{xo {oD o> *{{*{3{xo {oD o *{{*0#{yo ,{y{{o &*0{~-* +O{|{,8{|{{|{(o( (X {z2 +-{|{,{|{o)X {z2*0{}-* 8{|{9{{u:{|{o ,+{{{|{{{( 8w{{u ,A{|{o ,){{{|{( o 8%>{|{ {|{ o ,){{ {{o 8]( {|{@{|{ >o ,u o ,c{|{r2Qp>]( o ,*  {{ o &{{X {z?*6((*2{yo *2{yo * *0U}x{y,+{yo -{, {o {yo {w,{wo}w*0Dt{yo +o o o= Yo {z2o o= {z0* *0( ,(*0s{xo o= }+(%{X}{2{xo o= Y +{xo o Y {z/{x*F{xo o= *{x, {xo {, {o {y, {yo *{z*{z1{z1{yo X*&{{*N{yo (*6(*6(*0,(t i1i+ jj( j*6(*0,(t i1i+ jj( j* *Z({yo *6(<*6(=*6(*((o o o *6(*6(?*6(*6(y*6(*Z({yo *N{yo (*6(t]*"(*0Dbi {z2+{z  +(X 2 +  X {z2*Z({yo *( *0r>QprRQprfQprQp~r?Rp( rIRprkRprRprRprSp] rUSp~rSp~rSp(0 rSprSpr%TprqTprTprTps~rTprUpr/UprEUpraUp] ~ r{Up ~ r{Up ~ r{Up ~ r{Up ~  r{Up  ~  r{Up  ~  r{Up ~ r{Up ~ r{Up ~ r{Up ~ r{Up ~ r{Up ~ r{Up ~ r{Up ~ rUp (0 ~sQ } ]~r{Up~r{Up~r{Up~r{Up~ r{Up ~(0 ~DsQ }*0FPoW Q8PoS rUpoT oU ,vr pPoS rUpoT oV ](r p( }PoS rUpoT o }{PoS rUpoT o X}82PoS rUpoT oU ,`PoS rUpoT oV }PoS rUpoT o }{PoS rUpoT o X}8PoS r VpoT oU 9-*PoS r VpoT oV }PoS r VpoT o }{PoS r VpoT o X} r p{""(r p( }+PoW QPoU :@PoU ,`PoW QPoS r#VpoT oU ,?PoS r#VpoT oV }{PoS r#VpoT o X}{oG *0(-*PoS r;VpoT oU 9{}~F }{ ~F }(-*}PoS r;VpoT oU ,A{}{}~F }~F }(-*}*0r}}}rp}rp}rp}rp}}}}rp}rp}~{oR 8oS rUpoT oU 9rCVpoS rUpoT oV (& -oS rUpoT o }+ZrQVpoS rUpoT oV (& -$}oS rUpoT o }+*oW oU :MoW +;oS rUpoT oU ,oS rUpoT oV }+oW oU -( ,r]Vp{(& ,D*oS rUpoT oU ,$rmVpoS rUpoT oV (& ,*oW oU -}}rp}rp}( {}{}{}{}{}*0 ~} ~}  ~{oR 81AoS rsVpoT oU ,Y +oS rVpoT oU ,X =7oS rVpoT oU ,-o o X* 8oS rVpoT oU ,o *oS rVpoT oU , 8oS rVpoT oU ,X ~}8oS rVpoT oU , +~,<oS rqpoT oU ,$~oS rqpoT oV } +?oS rVpoT oU , +# , oS rVpoT oU ,o *oW oU :o*0]rWprWprWp    ~{oR 8-/oS r)WpoT oU ,-A1=oS rUpoT oU ,%%X oV (& ,3o oS r7WpoT oU , oS rEWpoT oU ,,*3 * oW oU :@,*3 **( *0   oq % 9~:+>s# %rMWp($ %rSWp($ %r]Wp($ %rgWp($ %rqWp($ %r{Wp($ %rWp($ %rWp($ %rWp($ %rWp ($ %rWp ($ %rWp ($ %rWp ($ %rWp ($ %rWp($ %rWp($ %rWp($ %rWp($ %rWp($ %rXp($ %rp($ %rp($ %rXp($ %rXp($ %rXp($ %r'Xp($ %r-Xp($ %r7Xp($ %rAXp($ %rKXp($ %rp($ %rp($ %rUXp ($ %rp!($ %r_Xp"($ %riXp#($ %rp$($ %rsXp%($ %r}Xp&($ %rXp'($ %rp(($ %rXp)($ %rXp*($ %rXp+($ %rXp,($ %rXp-($ %rXp.($ %rp/($ %rXp0($ %rp1($ %rXp2($ %rp3($ %rp4($ %rp5($ %rp6($ %rp7($ %rXp8($ %rXp9($ %rXp:($ %rp;($ %rXp<($ %rYp=($ ~(% 9 E> !(07>ELT\dlt| !&+05:?DINSX]bglqv{8 8 8 8 8{ 8t= 8l 8e 8^ 8W 8P 8H 8@ 88 80 8( 8  8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8! 8" 8# +{$ +v% +q& +l' +g( +b) +]* +X+ +S, +N- +I. +D/ +?0 +:1 +52 +03 ++4 +&5 +!6 +7 +8 +9 + : +; +< *0   oq % 9l~:s# %rMWp($ %rXp($ %rXp($ %rp($ %rp($ %r Yp($ %rp($ %rYp($ %rp($ %rp ($ %rfp ($ %rXp ($ %rp ($ %rXp ($ %rYp($ ~(% 9 E "&+05:?+@ +< +8 +4 +0 +, +( +$ +  + + + +  + + *0|   oq % 9^~:Ws# %r!Yp($ %r+Yp($ %r5Yp($ %r?Yp($ %rIYp($ %rSYp($ %r]Yp($ %rgYp($ %rqYp($ %r{Yp ($ %rYp ($ %rYp ($ %rYp ($ %rXp ($ %rXp($ %rYp($ %rp($ %rYp($ %rYp($ %rYp($ %rYp($ %rYp($ %rYp($ %rYp($ %rYp($ %rYp($ ~(% 9 E #'+05:?DINSX]bglqv+w +s +n +j +f +b +^ +Z +V +R +N +I +D +? +: +5 +0 ++ +& +! + + + +  + + *( *0(t -s o*(*J(s }*0  *0l(t {o +5o t (z o ({ ozo too -u , o *AY0?5o ooooojoojoo &*0sE t ({o +! o t rYpoH &( o - u,o (jo(jo(*"-O0D({o +o t o o -u ,o *20F({o +o t o o -u ,o * 40;o$&(+s o{o &o$-*{*"}*b( o s }*N( o}*:{o *6{o *0:,{{o &*{o tA {o o &*01 +"{o ,{o -*X o 2*0M-*{o tA {o  +o {o .*X o 2*:(} *0c{ :s (o9 oM rZp( (N o o o ] rprZpo # rpsO o (( ( } { *~(#,~Y *('o* *"} *(*0( o rp(  1~Y *sK o oD rZpoJ o" (  ooX% o o= /#o oD rpoJ o" ( -*0y m% 9k ~:^}s# %rGZp($ %rgZp($ %rZp($ %rZp($ %rZp($ %r[p($ %r1[p($ %rk[p($ %r[p($ %r[p ($ %r\p ($ %r=\p ($ %rm\p ($ %r\p ($ %r\p($ %r\p($ %r]p($ %r+]p($ %rM]p($ %rs]p($ %r]p($ %r]p($ %r]p($ %r^p($ %r-^p($ %rg^p($ %r}^p($ %r^p($ %r^p($ %r^p($ %r^p($ %r _p($ %r'_p ($ %r=_p!($ %rS_p"($ %r_p#($ %r_p$($ %r_p%($ %r_p&($ %r `p'($ %r5`p(($ %rc`p)($ %r`p*($ %r`p+($ %r`p,($ %r/ap-($ %rMap.($ %rap/($ %rap0($ %rap1($ %rbp2($ %rAbp3($ %rabp4($ %r{bp5($ %rbp6($ %rbp7($ %rbp8($ %r+cp9($ %rOcp:($ %rqcp;($ %rcp<($ %rcp=($ %rcp>($ %rcp?($ %rdp@($ %r-dpA($ %rKdpB($ %rudpC($ %rdpD($ %rdpE($ %rdpF($ %rdpG($ %repH($ %r1epI($ %rIepJ($ %raepK($ %repL($ %repM($ %repN($ %rfpO($ %r!fpP($ %rIfpQ($ %rsfpR($ %rfpS($ %rfpT($ %rfpU($ %r/gpV($ %rIgpW($ %rygpX($ %rgpY($ %rgpZ($ %rgp[($ %r)hp\($ %rEhp]($ %r[hp^($ %r{hp_($ %rhp`($ %rhpa($ %rhpb($ %ripc($ %r9ipd($ %rOipe($ %ripf($ %ripg($ %riph($ %ripi($ %ripj($ %ripk($ %rjpl($ %r7jpm($ %rqjpn($ %rjpo($ %rjpp($ %rjpq($ %rjpr($ %rkps($ %rkpt($ %r)kpu($ %r=kpv($ %rskpw($ %rkpx($ %rkpy($ %rkpz($ %rkp{($ %rkp|($ ~(% 9E} #)/5;AGMSY_ekqw} %+17=CIOU[agmsy !'-39?EKQW]ciou{8(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *( *( *( *( *(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(%*(&*('*((*()*(**(+*(,*(-*(.*(/*(0*(1*(2*(3*(4*(5*(6*(7*(8*(9*(:*(;*(<*(=*(>*(?*(@*(A*(B*(C*(D*(E*(F*(G*(H*(I*(J*(*(*0( o rp(  1~Y *s% o oD rZpoJ o" (  oloX% o o= /#o oD rpoJ o" ( -*0m% 9~: s# %rGZp($ %rlp($ %rgZp($ %rZp($ %rZp($ %rZp($ %r[p($ %r1[p($ %rGlp($ %rk[p ($ %r[p ($ %r}lp ($ %rlp ($ %rlp ($ %r[p($ %r\p($ %rlp($ %rmp($ %r=\p($ %rm\p($ %r\p($ %r\p($ %r\p($ %r]p($ %r=mp($ %r[mp($ %rmp($ %r+]p($ %rmp($ %rM]p($ %rs]p($ %r]p($ %r]p ($ %r]p!($ %r^p"($ %rmp#($ %r-^p$($ %rmp%($ %rnp&($ %rg^p'($ %r}^p(($ %r^p)($ %rEnp*($ %rknp+($ %r^p,($ %rnp-($ %r^p.($ %r^p/($ %r _p0($ %r'_p1($ %r=_p2($ %rnp3($ %rS_p4($ %r_p5($ %r_p6($ %r_p7($ %r_p8($ %r `p9($ %r5`p:($ %rc`p;($ %r`p<($ %r op=($ %r-op>($ %riop?($ %r`p@($ %r`pA($ %r/apB($ %ropC($ %rMapD($ %ropE($ %ropF($ %rapG($ %rapH($ %rapI($ %rbpJ($ %rAbpK($ %rabpL($ %rppM($ %r1ppN($ %rgppO($ %r{bpP($ %rppQ($ %rbpR($ %rbpS($ %rbpT($ %r+cpU($ %rOcpV($ %rqcpW($ %rppX($ %rcpY($ %rppZ($ %rcp[($ %rcp\($ %rcp]($ %rdp^($ %rpp_($ %rqp`($ %r-dpa($ %rKdpb($ %rudpc($ %rdpd($ %rdpe($ %rdpf($ %rdpg($ %reph($ %r1epi($ %rIepj($ %r_qpk($ %raepl($ %repm($ %repn($ %rqpo($ %repp($ %rfpq($ %r!fpr($ %rIfps($ %rsfpt($ %rfpu($ %rqpv($ %rqpw($ %rqpx($ %rfpy($ %rfpz($ %r/gp{($ %rrp|($ %rIgp}($ %r3rp~($ %rYrp($ %rygp ($ %rgp ($ %rgp ($ %rgp ($ %r)hp ($ %rEhp ($ %rrp ($ %rrp ($ %rrp ($ %r[hp ($ %rrp ($ %r{hp ($ %rhp ($ %rhp ($ %rhp ($ %rip ($ %r9ip ($ %rsp ($ %rOip ($ %r7sp ($ %rip ($ %rip ($ %rip ($ %rip ($ %rip ($ %r]sp ($ %rsp ($ %rsp ($ %rip ($ %rjp ($ %r7jp ($ %rqjp ($ %rjp ($ %rjp ($ %rjp ($ %rjp ($ %rkp ($ %rkp ($ %r)kp ($ %rsp ($ %r=kp ($ %rskp ($ %rtp ($ %r3tp ($ %rkp ($ %rkp ($ %r?tp ($ %rkp ($ %rkp ($ %rkp ($ ~(% 9E #)/5;AGMSY_ekqw} %+17=CIOU[agmsy !'-39?EKQW]ciou{ #)/5;AGMSY_ekqw} %+8,(s*(t*(u*(v*(w*(x*(y*(z*({*(|*(}*(~*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *( *( *( *( *(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(*0-(v s1 rpo2 rpo3 o5 o ( s1 r~po2 rpo3 o5 o ( s1 r[tpo2 rpo3 o5 o ( s1 rmtpo2 r[ po3 o5 o ( s1 rtpo2 rpo3 o5 o ( s1 rtpo2 r[ po3 o5 o ( *0   *0( o s ( o (z o +- (} o  o ( o &Xi2rp( ( rtpo u,o -+ o 3o oX 8o t5rtpoJ o"   , oG 1rtp ( , rtpoJ o"  -rp+ rtp ( (  , (& :\rtpoJ o" ( (&  ,  @.o  (z o 8  %9rp( -Krtp( -Jr~p( -Nr[tp( -Wrmtp( -Vrtp( -y8   o +|   o +j  rtpoJ o +S   o +F  rtprmtpoJ o" ( -+o +  rtpoJ o Xi?o  o o :u,o s *A(%(%(%(%(#*.+.+.+.+s *(*0s (' ( ,*s o o o ,^ o o +/o t~o o ,o o &o -u,o *C<(*:( }!*0 {!(g -{! *>( }"*b]( 3*( *0ro +Y ( o +/t o ( ,o ( Xi2+i2* *0' u] ( -{"(+*( *0ko +R o ( ,8( o +t o i2+Xi2* *]( 3o" {"(-*( *Fv( ()*F( ()*FF( ()*( *(e*(f*.rtp(g*.rup(g*.rUup(g*.rup(g*.rup(g*.rup(g*.r vp(g*.r+vp(g*.rKvp(g*.r}vp(g*.rvp(g*.rvp(g*.rvp(g*.rvp(g*.rwp(g*.rEwp(g*.rYwp(g*.rwp(g*.rwp(g*.rwp(g*.rwp(g*.rwp(g*.r'xp(g*.r7xp(g*.rExp(g*.r_xp(g*.rqxp(g*.rxp(g*.rxp(g*.rxp(g*.rxp(g*.rxp(g*2ryp(h*6r?yp(i*2rwyp(h*2ryp(h*2ryp(h*6ryp(i*2r'zp(h*2rQzp(h*6rzp(i*2rzp(h*2rzp(h*2rzp(h*2rzp(h*2r{p(h*2r[{p(h*( *~S*S*F~R~So *0'( ~R~So  (8 *0+( ~R~So  (8 *( o ( o o s RS*:( }*{*s'*0s' o+*"(n*0s' o+*"(p*F{o" *sk*sk*sk*sk*sk*sk*sk*sk*sk*" sk*" sk*" sk*" sk*" sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*"sk*" sk*"!sk*""sk*"#sk*"$sk*"%sk*"&sk*"'sk*"(sk*")sk*"*sk*"+sk*",sk*"-sk*".sk*"/sk*"0sk*"1sk*"2sk*"3sk*"4sk*"5sk*"6sk*"7sk*"8sk*"9sk*":sk*";sk*"sk*"?sk*"@sk*"Ask*"Bsk*"Csk*"Dsk*"Esk*"Fsk*"Gsk*"Hsk*"Isk*"Jsk*"Ksk*"Lsk*"Msk*"Nsk*"Osk*"Psk*"Qsk*"Rsk*"Ssk*"Tsk*"Usk*"Vsk*"Wsk*"Xsk*"Ysk*"Zsk*"[sk*"\sk*"]sk*"^sk*"_sk*"`sk*"ask*"bsk*"csk*"dsk*"esk*"fsk*"gsk*"hsk*"isk*"jsk*"ksk*"lsk*"msk*"nsk*"osk*"psk*"qsk*"rsk*"ssk*"tsk*"usk*"vsk*"wsk*"xsk*"ysk*"zsk*"{sk*"|sk*"}sk*"~sk*"sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*. sk*( *"( *:( (+*03( o s (   + (+X i2*b( o tA( *2(s)*N(olo *N(olo *&(+*&(,*0s& o+*"(/*0s& o,*"(1* *0sE (L o r{p( oH &  (o +9o  ,%, + r&poH &o" oH &X o -u,o o" *3Fy{*"}*6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *:( o *>( o *:( o *>( o *:( o *>( o *:( o *>( o *:( o *>( o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:( o *>( o *:(!o *>(!o *:("o *>("o *:(#o *>(#o *:($o *>($o *:(%o *>(%o *:(&o *>(&o *:('o *>('o *:((o *>((o *:()o *>()o *:(*o *>(*o *:(+o *>(+o *:(,o *>(,o *:(-o *>(-o *:(.o *>(.o *:(/o *>(/o *:(0o *>(0o *:(1o *>(1o *:(2o *>(2o *:(3o *>(3o *:(4o *>(4o *:(5o *>(5o *:(6o *>(6o *:(7o *>(7o *:(8o *>(8o *:(9o *>(9o *:(:o *>(:o *:(;o *>(;o *:((<o *:(=o *>(=o *:(>o *>(>o *:(?o *>(?o *:(@o *>(@o *:(Ao *>(Ao *:(Bo *>(Bo *:(Co *>(Co *:(Do *>(Do *:(Eo *>(Eo *:(Fo *>(Fo *:(Go *>(Go *:(Ho *>(Ho *:(Io *>(Io *:(Jo *>(Jo *:(Ko *>(Ko *:(Lo *>(Lo *:(Mo *>(Mo *:(No *>(No *:(Oo *>(Oo *:(Po *>(Po *:(Qo *>(Qo *:(Ro *>(Ro *:(So *>(So *:(To *>(To *:(Uo *>(Uo *:(Vo *>(Vo *:(Wo *>(Wo *:(Xo *>(Xo *:(Yo *>(Yo *:(Zo *>(Zo *:([o *>([o *:(\o *>(\o *:(]o *>(]o *:(^o *>(^o *:(_o *>(_o *:(`o *>(`o *:(ao *>(ao *:(bo *>(bo *:(co *>(co *:(do *>(do *:(eo *>(eo *:(fo *>(fo *:(go *>(go *:(ho *>(ho *:(io *>(io *:(jo *>(jo *:(ko *>(ko *:(lo *>(lo *:(mo *>(mo *:(no *>(no *:(oo *>(oo *:(po *>(po *:(qo *>(qo *:(ro *>(ro *:(so *>(so *:(to *>(to *:(uo *>(uo *:(vo *>(vo *:(wo *>(wo *:(xo *>(xo *:(yo *>(yo *:(zo *>(zo *:({o *>({o *:(|o *>(|o *:(}o *>(}o *:(~o *>(~o *:(o *>(o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *F( o *J( o *0J({s'  ((~(s(  (((s(  (((s(  ( ( ( s( (((s(((s((((!s((((((s(((s(  ( ( ( s(  ( ( ( s(  ( ( ( s(  ( ( ( ( ( ( ( s(  ( ( ( s((((s(((( s(((( s(4((((((((( ( ( (! ({ ((~(((((((( ((( (t((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(s(((((((!({((~ ( ( ( ( (((( ((( (t(s((s'*2~ (*R~ (}*2~ (*R~ (}*2~ (*R~ (}*2~ (*R~ (}*2~ (*R~ (}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*:( }*{*sM*0sM oQ*"(*0sM oQ*"(*F{o" *s*s*s*s*s*s*s*s*s*" s*" s*" s*" s*" s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*" s*"!s*""s*"#s*"$s*"%s*"&s*"'s*"(s*")s*"*s*"+s*",s*"-s*".s*"/s*"0s*"1s*"2s*"3s*"4s*"5s*"6s*"7s*"8s*"9s*":s*";s*"s*"?s*"@s*"As*"Bs*"Cs*"Ds*"Es*"Fs*"Gs*"Hs*"Is*"Js*"Ks*"Ls*"Ms*"Ns*"Os*"Ps*"Qs*"Rs*"Ss*"Ts*"Us*"Vs*"Ws*"Xs*"Ys*"Zs*"[s*"\s*"]s*"^s*"_s*"`s*"as*"bs*"cs*"ds*"es*"fs*"gs*"hs*"is*"js*"ks*"ls*"ms*"ns*"os*"ps*"qs*"rs*"ss*"ts*"us*"vs*"ws*"xs*"ys*"zs*"{s*"|s*( *"( *:( (Q*03( o s (   + (QX i2*b( o tA( *2(sO*N(oo *N(oo *&(Q*&(R*0sL oQ*"(U*0sL oR*"(W*}*0sE (L o r{p( oH &  (o +9o  ,%, + r&poH &o" oH &X o -u,o o" *3Fy{*"}*6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *6(o *:(o *:( o *>( o *:( o *>( o *:( o *>( o *:( o *>( o *:( o *>( o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:(o *>(o *:( o *>( o *:(!o *>(!o *:("o *>("o *:(#o *>(#o *:($o *>($o *:(%o *>(%o *:(&o *>(&o *:('o *>('o *:((o *>((o *:()o *>()o *:(*o *>(*o *:(+o *>(+o *:(,o *>(,o *:(-o *>(-o *:(.o *>(.o *:(/o *>(/o *:(0o *>(0o *:(1o *>(1o *:(2o *>(2o *:(3o *>(3o *:(4o *>(4o *:(5o *>(5o *:(6o *>(6o *:(7o *>(7o *:(8o *>(8o *:(9o *>(9o *:(:o *>(:o *:(;o *>(;o *:((<o *:(=o *>(=o *:(>o *>(>o *:(?o *>(?o *:(@o *>(@o *:(Ao *>(Ao *:(Bo *>(Bo *:(Co *>(Co *:(Do *>(Do *:(Eo *>(Eo *:(Fo *>(Fo *:(Go *>(Go *:(Ho *>(Ho *:(Io *>(Io *:(Jo *>(Jo *:(Ko *>(Ko *:(Lo *>(Lo *:(Mo *>(Mo *:(No *>(No *:(Oo *>(Oo *:(Po *>(Po *:(Qo *>(Qo *:(Ro *>(Ro *:(So *>(So *:(To *>(To *:(Uo *>(Uo *:(Vo *>(Vo *:(Wo *>(Wo *:(Xo *>(Xo *:(Yo *>(Yo *:(Zo *>(Zo *:([o *>([o *:(\o *>(\o *:(]o *>(]o *:(^o *>(^o *:(_o *>(_o *:(`o *>(`o *:(ao *>(ao *:(bo *>(bo *:(co *>(co *:(do *>(do *:(eo *>(eo *:(fo *>(fo *:(go *>(go *:(ho *>(ho *:(io *>(io *:(jo *>(jo *:(ko *>(ko *:(lo *>(lo *:(mo *>(mo *:(no *>(no *:(oo *>(oo *:(po *>(po *:(qo *>(qo *:(ro *>(ro *:(so *>(so *:(to *>(to *:(uo *>(uo *:(vo *>(vo *:(wo *>(wo *:(xo *>(xo *:(yo *>(yo *:(zo *>(zo *:({o *>({o *:(|o *>(|o *0 (((sN (((sN (((sN(sM (  ( (3 sN((( sN((!sN((;((:sN}(((?(((C(((+ ( ( ( (( (((J(<((>(((*(((1(((@((%(( (!("(A#($(%( &('(((B)(*(5+( ,(-(4.(/(0(1(2(3(84(E5(6(G7(8(9(:(=;(<(=(>(?(;@(A(:B(C(D(,E(F(G(#H(I(J("K(L(M(-N(O(!P( Q(R(2S(T(U(9V( W(X(6Y( Z([(3\(](^(_(`(a(Db(c(d(.e(f(g(/h(i(j($k(Hl(m(n(&o(p(q('r(s(t(0u(v( w(7x(Iy(z({()|(FsN((("sN  ( ( (, sN(  ( ( (  ( ( (B ( (5 (   (  (4  (  (  ( ( ( (8 (E ( (G ( ( ( (= ( ( ( ( (; ( (: (  ( !(, "( #( $(# %( &( '(" sN  ( ( ($ (H sN  ( ( (# sN  ( (% sN(((&sN((('sN((()sN(((*sN(E((GsN(((+((((((sN(((-sN(((=sN(((.(((/sN(((0sN(((sN(((.sN(((/sN( ((2sN((5( ((4sN( ((6sN(( (7(IsN(((8sN  ( ( (9 sN!!(!(!(-!(!(!!( !(!(2!(! (! (9! ( ! (! (6!( !(!(3!(!(!(!sN""("(J"(<"sN##(#(#(1#sN$$($(>$sN%%(%(%(?%sN&&(&(&(?&(&(&(C&(&(&(+& (& (& (& ((& (&(&(J&(<&sN''('('(@'sN(((((A(sN))()()(B)sN**(*(*(C*sN++(+(+(D+sN*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*5 p.object_id = indx.object_id and p.index_id = indx.index_id dds.partition_scheme_id = indx.data_space_id and dds.destination_id = p.partition_number fg.data_space_id = dds.data_space_id or fg.data_space_id = indx.data_space_id ps.data_space_id = indx.data_space_id prv.boundary_id = p.partition_number and prv.function_id = ps.function_id pf.function_id = prv.function_id p.partition_number prv.value p.rows fg.name pf.boundary_value_on_right p.data_compression lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet/PADPADPkÉA9kSdDMl dǬ 4H !L~G긕G3ѿr\ŕ\⯯ʍE.C(}X͉/l kj:3ra7jc0VQX&\bf!gPhWn+qm6x8y{`|)A|L}`'fJj5M!Yc\]8 _ BetweenRetries@CouldNotGetInfoFromDependencyRow,CouldNotInstantiateObjC6DatabaseNameMustBeSpecifiedfFDatabaseNameMustBeSpecifiedinTheUrn*EnumObjectTagNotFoundExecuting"FailedToCreateUrn(FailedToLoadAssembly&FailedToLoadResFile8Idle$IncorectVersionTag0InvalidConfigurationFile*InvalidConnectionType InvalidSqlServer$(InvalidUrnForDependsEInvalidVersionuMissingSection,NoClassNamePostProcessNotDbObjectNotDerivedFromNotSingleDb56NullVersionOnLoadingCfgFile\$OnlyPathOrFullName4PerformingCompletionAction&PropMustBeSpecified8QueryNotSupportedPostProcess(SmoSQLCLRUnAvailable<SqlServer80NameSqlServer90NameSuspendedTooManyDbLevelsUnknown7UnknownOperator@UnknownTypeS6UnsupportedTypeDepDiscoveryg,WaitingForStepToFinish,WaitingForWorkerThreadmsDisconnected msNone"msPendingFailovermsSuspended+msSynchronized6msSynchronizingDrmBulkLoggedS rmFull`rmSimplefBetween retries0Failed to retrieve dependency information ({0}).!could not instantiate object {0}. Database name must be specified.3The database name must be specified in the urn: {0}%Enumeration object tag was not found. Executing)failed to create Urn for object code: {0}failed to load assembly {0}.File {0} was not found. The file might be missing in sources or misspelled in config.xml, or case sensitivity may not be preserved. Not runningIncorrect version tag. Configuration file is not valid.Connection type is not valid.Operation not supported on {0}..Urn is not valid for dependency discovery: {0}'Operation not supported on version {0}.0invalid configuration file: missing section {0}.& tag missing class_name.object is not under database.{0} is not derived from {1}.%objects are not in a single database.8Version was not specified on loading configuration file.-Only Path or only FullName must be specified.Performing completion action{0} must be specified on {1}.8Cannot provide DataReader because of the properties: {0}The functionality you’re trying to execute is disabled inside SQLCLR, if you still want to execute this functionality you can try executing it inside your client application.SQL Server 2000SQL Server 2005 Suspendedtoo many database levels.UnknownUnknown operator.Unknown type: {0}.e{0} is not supported in dependency discovery. Only objects of the following types are supported: {1}.Waiting for step to finishWaiting for worker thread DisconnectedNonePending Failover Suspended Synchronized Synchronizing Bulk LoggedFullSimple t.dbname = dtb.name v.name = 'db chaining' create table #tmplog (dbname sysname null, log_size float null, log_space_used float null, status int) INSERT INTO #tmplog EXEC ('DBCC SQLPERF(LOGSPACE)') create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime) insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type] drop table #tmplog drop table #tempbackup df.database_id = dtb.database_id and 1=df.data_space_id and 1 = df.file_id dmi.database_id = dtb.database_id drs.database_id = dtb.database_id dtb.name = vardec.dbname ctb.database_id = dtb.database_id create table #tmp_sp_db_vardecimal_storage_format (dbname sysname null, vardecimal_enabled varchar(3) null) if exists (select o.object_id from sys.system_objects o where o.name=N'sp_db_vardecimal_storage_format') begin insert into #tmp_sp_db_vardecimal_storage_format exec sys.sp_db_vardecimal_storage_format end create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime) insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type] drop table #tmp_sp_db_vardecimal_storage_format drop table #tempbackup dtb.name dtb.dbid suser_sname(dtb.sid) dtb.crdate rtrim(dtb.filename) NULL t.log_size*(100-t.log_space_used)*10.24 NULL NULL 0 (select count(*) from master.dbo.sysprocesses p where dtb.dbid=p.dbid) dtb.cmptlevel '' dtb.category case when dtb.name in ('master','model','msdb','tempdb') then 1 else category & 16 end dtb.status & <msparam>1</msparam> dtb.status & <msparam>4194304</msparam> case when dtb.name in ('master') then 1 else dtb.is_distributor end (select default_schema_name from sys.database_principals where name = user_name()) (select user_name()) 0 (select is_member(N'db_accessadmin')) (select is_member(N'db_backupoperator')) (select is_member(N'db_datareader')) (select is_member(N'db_datawriter')) (select is_member(N'db_owner')) (select is_member(N'db_securityadmin')) (select is_member(N'db_ddladmin')) (select is_member(N'db_denydatareader')) (select is_member(N'db_denydatawriter')) (select is_member(N'db_owner')) (select isnull(is_member(N'dbmanager'), 0)) (select isnull(is_member(N'loginmanager'), 0)) ( case dtb.is_read_only when 1 then 0 else 1 end) dtb.is_ansi_null_default_on dtb.is_ansi_nulls_on dtb.is_ansi_padding_on dtb.is_ansi_warnings_on dtb.is_arithabort_on dtb.is_auto_close_on dtb.is_auto_shrink_on dtb.is_cursor_close_on_commit_on dtb.is_concat_null_yields_null_on dtb.is_numeric_roundabort_on dtb.is_quoted_identifier_on dtb.is_read_only dtb.is_recursive_triggers_on dtb.is_local_cursor_default dtb.page_verify_option dtb.recovery_model dtb.user_access dtb.snapshot_isolation_state dtb.is_read_committed_snapshot_on dtb.is_db_chaining_on dtb.is_auto_update_stats_async_on dtb.is_date_correlation_on dtb.is_broker_enabled dtb.is_trustworthy_on dtb.name dtb.database_id dtb.create_date dtb.is_fulltext_enabled dtb.collation_name isnull(dtb.source_database_id, 0) (select count(1) from sys.databases dtbmir where dtbmir.source_database_id = dtb.database_id) ISNULL(DB_NAME(dtb.source_database_id), N'') dtb.is_auto_create_stats_on dtb.is_auto_update_stats_on dtb.is_parameterization_forced dtb.compatibility_level (dtb.is_published*1+dtb.is_subscribed*2+dtb.is_merge_published*4) dtb.service_broker_guid ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0) ISNULL(dmi.mirroring_connection_timeout,0) suser_sname(dtb.owner_sid) df.physical_name 0 0 0 0 0 (select count(*) from master.dbo.sysprocesses p where dtb.database_id=p.dbid) '' ISNULL((select top 1 ftc.name from sys.fulltext_catalogs as ftc where ftc.is_default=1),N'') 0 case when vardec.vardecimal_enabled = 'ON' then cast(1 as bit) else cast(0 as bit) end ISNULL(dmi.mirroring_partner_name,'') ISNULL(dmi.mirroring_partner_instance,'') ISNULL(dmi.mirroring_role,0) ISNULL(dmi.mirroring_safety_level + 1, 0) ISNULL(dmi.mirroring_state + 1, 0) ISNULL(dmi.mirroring_witness_name,'') ISNULL(dmi.mirroring_witness_state + 1, 0) case when dmi.mirroring_partner_name is null then 0 else 1 end ISNULL(dmi.mirroring_guid,'00000000-0000-0000-0000-0000000000000000') ISNULL(dmi.mirroring_role_sequence,0) ISNULL(dmi.mirroring_safety_sequence,0) ISNULL(dmi.mirroring_failover_lsn,0) case when DATABASEPROPERTY(dtb.name,'IsShutDown') is null then 0x200 else 0 end | case when 1 = dtb.is_in_standby then 0x40 else 0 end | case when 1 = dtb.is_cleanly_shutdown then 0x80 else 0 end | case dtb.state when 1 then 0x2 when 2 then 0x8 when 3 then 0x4 when 4 then 0x10 when 5 then 0x100 when 6 then 0x20 else 1 end drs.recovery_fork_guid drs.database_guid case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end ISNULL(dtb.log_reuse_wait,0) N'' 0 case when ctb.database_id is null then 0 else 1 end ISNULL(ctb.is_auto_cleanup_on,0) ISNULL(ctb.retention_period,0) ISNULL(ctb.retention_period_units,0) DATABASEPROPERTYEX(dtb.name, 'IsFulltextEnabled') DATABASEPROPERTYEX(dtb.name, 'Collation') case -- if all these are false then we are in the Normal state -- except some return NULL if it's AutoClosed when (DATABASEPROPERTY(dtb.name,'IsInLoad') = 0 and (DATABASEPROPERTY(dtb.name,'IsInRecovery') = 0 or DATABASEPROPERTY(dtb.name,'IsInRecovery') is null) and (DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 0 or DATABASEPROPERTY(dtb.name,'IsNotRecovered') is null) and DATABASEPROPERTY(dtb.name,'IsSuspect') = 0 and DATABASEPROPERTY(dtb.name,'IsOffline') = 0 and DATABASEPROPERTY(dtb.name,'IsInStandBy') = 0 and (DATABASEPROPERTY(dtb.name,'IsShutDown') = 0 or DATABASEPROPERTY(dtb.name,'IsShutDown') is null) and DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 0) then 1 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsInLoad') = 1 then 2 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 and DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 1 then 4 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 then 8 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsSuspect') = 1 then 16 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsOffline') = 1 then 32 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsInStandBy') = 1 then 64 else 0 end | case when DATABASEPROPERTY(dtb.name,'IsShutDown') = 1 then 128 when DATABASEPROPERTY(dtb.name,'IsShutDown') is null then (512 + 128) else 0 end | case when DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 1 then 256 else 0 end DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault') DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled') DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics') DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics') DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled') DATABASEPROPERTYEX(dtb.name, 'IsNullConcat') DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled') DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled') DATABASEPROPERTY(dtb.name, 'IsReadOnly') DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled') DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault') CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END case when (dtb.status2 & v.number != 0) then 1 else 0 end CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255))) CHARINDEX(N'_CS_', dtb.collation_name) ( case LOWER(convert( nvarchar(128), DATABASEPROPERTYEX(dtb.name, 'Updateability'))) when 'read_write' then 1 else 0 end) DATABASEPROPERTYEX(dtb.name, 'Version') DATABASEPROPERTY(dtb.name,'IsFulltextEnabled') dtb.is_encrypted dtb.is_honor_broker_priority_on 0 0 0 0 0 0 0 0 0 '' N'' has_dbaccess(dtb.name) (select backup_finish_date from #tempbackup where type = <msparam>L</msparam> and database_name = dtb.name) (select backup_finish_date from #tempbackup where type = <msparam>D</msparam> and database_name = dtb.name) (select backup_finish_date from #tempbackup where type = <msparam>I</msparam> and database_name = dtb.name)  declare @PageSize float select @PageSize=v.low/1024.0 from master..spt_values v where v.number=1 and v.type='E' g.groupname g.groupid g.status & 0x08 g.status & 0x10 ISNULL((select sum(s.size * @PageSize) from dbo.sysfiles s where s.groupid = g.groupid), 0) cast(g.name as varbinary(256)) g.data_space_id g.is_read_only g.is_default ISNULL((select sum(cast(gs.size as float))*convert(float,8) from sys.database_files gs where gs.data_space_id = g.data_space_id), 0) CASE WHEN 'FD'=g.type THEN 1 ELSE 0 END s.type = 0 and s.database_id = db_id() and (s.drop_lsn IS NULL) (s.type = 2 or s.type = 0) and s.database_id = db_id() and (s.drop_lsn IS NULL) fs.database_id = s.database_id AND fs.file_id = s.file_id create table #tmpspc (Fileid int, FileGroup int, TotalExtents int, UsedExtents int, Name sysname, FileName nchar(520)) insert #tmpspc EXEC ('dbcc showfilestats') drop table #tmpspc CASE s.fileid WHEN 1 THEN 1 ELSE 0 END CASE s.file_id WHEN 1 THEN 1 ELSE 0 END tspc.UsedExtents*convert(float,64) (tspc.TotalExtents - tspc.UsedExtents)*convert(float,64) CASE s.type WHEN 2 THEN 0 ELSE tspc.UsedExtents*convert(float,64) END CASE s.type WHEN 2 THEN 0 ELSE (tspc.TotalExtents - tspc.UsedExtents)*convert(float,64) END 5 s.groupid = 0 s.type = 1 and s.database_id = db_id() fs.database_id = s.database_id AND fs.file_id = s.file_id CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8)  fileau.audit_id = au.audit_id AND fileau.audit_guid = au.audit_guid au.principal_id = p.principal_id au.name au.audit_id case when au.type='FL' then 0 when au.type='SL' then 1 when au.type='AL' then 2 end au.queue_delay au.on_failure au.is_state_enabled au.audit_guid au.create_date au.modify_date ISNULL(log_file_path,'') ISNULL(log_file_name,'') 0 0 ISNULL(fileau.reserve_disk_space, 0) ISNULL(fileau.max_rollover_files, 0)  sas.audit_guid = au.audit_guid sas.name sas.server_specification_id sas.is_state_enabled sas.audit_guid ISNULL(au.name, '') sas.create_date sas.modify_date  details.server_specification_id details.audit_action_name '' '' '' ''  das.audit_guid = au.audit_guid das.name das.database_specification_id das.is_state_enabled das.audit_guid ISNULL(au.name, '') das.create_date das.modify_date db_name() . details.is_group = 0 and o.object_id = details.major_id and details.class_desc != 'SCHEMA' and details.class_desc != 'DATABASE' details.is_group = 0 and sch.schema_id = details.major_id and details.class_desc = 'SCHEMA' details.is_group = 0 and p.principal_id = details.audited_principal_id details.is_group = 0 and s.class = details.class details.database_specification_id details.audit_action_name ISNULL(case when s.class_desc != 'DATABASE' and s.class_desc != 'SCHEMA' then 'OBJECT' else s.class_desc end,'') ISNULL(SCHEMA_NAME(o.schema_id), '') ISNULL(case when details.is_group = 0 and details.class_desc = 'DATABASE' then db_name() when details.class_desc = 'SCHEMA' then sch.name else o.name end,'') ISNULL(p.name, '')  v1.low=0 and v1.type='SRV' r.type ='R' v1.name = r.name and v1.low = 0 v1.name v2.name r.name r.principal_id N'' ; log.language = l.name log.type in ('U', 'G', 'S', 'C', 'K') AND log.principal_id not between 101 and 255 AND log.name <> N'##MS_AgentSigningCertificate##' l.name = log.default_language_name sqllog.principal_id = log.principal_id sp.grantee_principal_id = log.principal_id and sp.type = N'COSQ' cert.sid = log.sid ak.sid = log.sid c.credential_id = log.credential_id sqllog.type in ('S') l.name = sqllog.default_language_name log.loginname ISNULL(log.language, N'') l.alias ISNULL(log.dbname,N'') log.denylogin CASE WHEN 0 <> log.isntuser THEN 0 WHEN 0 <> log.isntgroup THEN 1 ELSE 2 END CASE WHEN (0 = log.isntuser AND 0 = log.isntgroup) THEN 99 WHEN (0 = log.denylogin and 0 = log.hasaccess) THEN 0 WHEN (0 = log.denylogin ) THEN 1 ELSE 2 END log.hasaccess log.sid log.createdate log.updatedate CASE log.sid WHEN 0x01 THEN 1 ELSE 0 END log.name ISNULL(log.default_language_name,N'') l.alias ISNULL(log.default_database_name, N'') CASE sp.state WHEN N'D' THEN 1 ELSE 0 END CASE WHEN N'U' = log.type THEN 0 WHEN N'G' = log.type THEN 1 WHEN N'S' = log.type THEN 2 WHEN N'C' = log.type THEN 3 WHEN N'K' = log.type THEN 4 END CASE WHEN (N'U' != log.type AND N'G' != log.type) THEN 99 WHEN (sp.state is null) THEN 0 WHEN (N'G'=sp.state) THEN 1 ELSE 2 END CASE WHEN (sp.state is null) THEN 0 ELSE 1 END log.sid log.create_date log.modify_date LOGINPROPERTY(log.name, N'IsLocked') LOGINPROPERTY(log.name, N'IsExpired') LOGINPROPERTY(log.name, N'IsMustChange') log.principal_id ISNULL(c.name,N'') ISNULL(cert.name,N'') ISNULL(ak.name,N'') log.is_disabled CASE WHEN log.principal_id < 256 THEN 1 ELSE 0 END sqllog.is_expiration_checked sqllog.is_policy_checked sqllog.name ISNULL(sqllog.default_language_name,N'') l.alias ISNULL(sqllog.default_database_name, N'') CASE WHEN N'S' = sqllog.type THEN 2 END sqllog.sid sqllog.create_date sqllog.modify_date sqllog.principal_id sqllog.is_disabled 0 A create table #loginmappings( LoginName sysname NULL, DBName sysname NULL, UserName sysname NULL, AliasName sysname NULL ) declare @db_name nvarchar(512) declare crs cursor local fast_forward for ( select name from master.dbo.sysdatabases where 1 = has_dbaccess(name)) for ( select name from sys.databases where 1 = has_dbaccess(name)) open crs fetch crs into @db_name while @@fetch_status >= 0 begin set @db_name = quotename(@db_name) exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from dbo.sysusers u where suser_sname(u.sid) is not null') exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from sys.database_principals AS u where suser_sname(u.sid) is not null') fetch crs into @db_name end close crs deallocate crs drop table #loginmappings logmap.LoginName logmap.DBName logmap.UserName  ((u.issqlrole != <msparam>1</msparam> and u.isapprole != <msparam>1</msparam> ) or (u.sid=<msparam>0x00</msparam>)) and u.isaliased != <msparam>1</msparam> and u.hasdbaccess != <msparam>0</msparam> u.type in ('U', 'S', 'G', 'C', 'K') dp.grantee_principal_id = u.principal_id and dp.type = <msparam>CO</msparam> cert.sid = u.sid ak.sid = u.sid u.name u.uid ISNULL(suser_sname(u.sid),N'') CASE WHEN u.uid = 1 OR u.uid = 16382 OR u.uid = 16383 THEN 1 ELSE 0 END CASE WHEN 0 <> u.isntuser THEN 0 WHEN 0 <> u.isntgroup THEN 1 ELSE 2 END 0 u.sid u.hasdbaccess u.createdate u.updatedate u.principal_id CASE WHEN u.principal_id < 5 OR u.principal_id = 16382 OR u.principal_id = 16383 THEN 1 ELSE 0 END CASE WHEN N'U' = u.type THEN 0 WHEN N'G' = u.type THEN 1 WHEN N'S' = u.type THEN 2 WHEN N'C' = u.type THEN 3 WHEN N'K' = u.type THEN 4 END CASE dp.state WHEN N'G' THEN 1 WHEN 'W' THEN 1 ELSE 0 END u.sid u.create_date u.modify_date ISNULL(u.default_schema_name,N'') ISNULL(cert.name,N'') ISNULL(ak.name,N'') CASE WHEN N'C' = u.type THEN 1 WHEN N'K' = u.type THEN 2 WHEN N'S' = u.type AND suser_sname(u.sid) IS NULL THEN 3 ELSE 0 END ISNULL(suser_sname(u.sid),N'') 0 0 rl.issqlrole = 1 ou.uid = rl.altuid rl.type = 'R' ou.principal_id = rl.owning_principal_id rl.name rl.uid rl.createdate rl.updatedate rl.principal_id rl.create_date rl.modify_date ou.name  rl.isapprole = 1 rl.type = 'A' rl.name rl.uid rl.createdate rl.updatedate rl.principal_id rl.default_schema_name rl.create_date rl.modify_date  create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives update #fixdrv set Name = Name + ':' drop table #fixdrv Name Size " create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 1 update #fixdrv set Name = Name + ':' drop table #fixdrv Name Size ' create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 2 update #fixdrv set Name = Name + ':' drop table #fixdrv Name Size N create table #cdromdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #cdromdrv EXECUTE master.dbo.xp_fixeddrives 3 update #cdromdrv set Name = Name + ':' drop table #cdromdrv Name Size  create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL, Type sysname NULL ) insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives update #fixdrv set Type = 'Fixed' where Type IS NULL insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 1 update #fixdrv set Type = 'Remote' where Type IS NULL insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 2 update #fixdrv set Type = 'Removable' where Type IS NULL insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 3 update #fixdrv set Type = 'CD-ROM' where Type IS NULL update #fixdrv set Name = Name + ':' drop table #fixdrv Name Size Type z create table #filetmpfin (Name nvarchar(255) NOT NULL, IsFile bit NULL) if(@Name is null) begin create table #filetmp (Name nvarchar(255) NOT NULL, depth int NOT NULL, IsFile bit NULL ) insert #filetmp EXECUTE master.dbo.xp_dirtree @Path, 1, 1 insert #filetmpfin select Name, IsFile from #filetmp f drop table #filetmp end if(NOT @Name is null) begin declare @FullName nvarchar(300) if(@Path is null) select @FullName = @Name else select @FullName = @Path + '\' + @Name create table #filetmp2 ( Exist bit NOT NULL, IsDir bit NOT NULL, DirExist bit NULL ) insert #filetmp2 EXECUTE master.dbo.xp_fileexist @FullName insert #filetmpfin select @Name, 1-IsDir from #filetmp2 where Exist = 1 or IsDir = 1 drop table #filetmp2 end drop table #filetmpfin Name @Path+'\'+Name @Path IsFile _ s.name s.langid s.dateformat s.alias s.days s.datefirst s.months s.shortmonths s.upgrade s.lcid s.msglangid # srv.srvid != 0 srv.srvid != 0 AND srv.srvname = so.srvname srv.server_id != 0 create table #tmp_srvoptions([srvname] nvarchar(255) not null, [collationcompatible] bit not null, [dataaccess] bit not null, [dist] bit not null, [dpub] bit not null, [pub] bit not null, [rpc] bit not null, [rpcout] bit not null, [sub] bit not null) declare @srvname nvarchar(255) declare @collation_compatible bit declare @data_access bit declare @dist bit declare @pub bit declare @dpub bit declare @rpc bit declare @rpc_out bit declare @sub bit create table #tmp(opt nvarchar(100)) declare srvname_cursor cursor for select srvname FROM dbo.sysservers WHERE srvid <> 0 open srvname_cursor fetch next from srvname_cursor into @srvname while @@FETCH_STATUS = 0 begin truncate table #tmp insert #tmp exec sp_serveroption @srvname set @collation_compatible = case when exists ( select * from #tmp where opt = 'collation compatible') then 1 else 0 end set @data_access = case when exists ( select * from #tmp where opt = 'data access') then 1 else 0 end set @dist = case when exists ( select * from #tmp where opt = 'dist') then 1 else 0 end set @dpub = case when exists ( select * from #tmp where opt = 'dpub') then 1 else 0 end set @pub = case when exists ( select * from #tmp where opt = 'pub') then 1 else 0 end set @rpc = case when exists ( select * from #tmp where opt = 'rpc') then 1 else 0 end set @rpc_out = case when exists ( select * from #tmp where opt = 'rpc out') then 1 else 0 end set @sub = case when exists ( select * from #tmp where opt = 'sub') then 1 else 0 end insert into #tmp_srvoptions([srvname], [collationcompatible], [dataaccess], [dist], [dpub], [pub], [rpc], [rpcout], [sub]) values (@srvname, @collation_compatible, @data_access, @dist, @dpub, @pub, @rpc, @rpc_out, @sub) fetch next from srvname_cursor into @srvname end close srvname_cursor deallocate srvname_cursor drop table #tmp drop table #tmp_srvoptions srv.srvname srv.srvid ISNULL(srv.catalog,N'') ISNULL(srv.datasource,N'') ISNULL(srv.location,N'') srv.srvproduct srv.providername null so.collationcompatible so.dataaccess so.dist so.dpub so.pub so.rpc so.rpcout so.sub srv.collationcompatible srv.dataaccess srv.dist srv.dpub srv.pub srv.rpc srv.rpcout srv.sub ISNULL(COLLATIONPROPERTYFROMID(srv.srvcollation, 'name'),N'') srv.connecttimeout srv.lazyschemavalidation srv.querytimeout srv.useremotecollation srv.name srv.server_id ISNULL(srv.catalog,N'') ISNULL(srv.data_source,N'') ISNULL(srv.location,N'') srv.product srv.provider srv.is_collation_compatible srv.is_data_access_enabled srv.is_distributor 0 srv.is_publisher srv.is_remote_login_enabled srv.is_rpc_out_enabled srv.is_subscriber ISNULL(srv.collation_name,N'') srv.connect_timeout srv.lazy_schema_validation srv.query_timeout srv.uses_remote_collation srv.modify_date null srv.is_remote_proc_transaction_promotion_enabled # (tbl.type='U' or tbl.type='S') idx.id = tbl.id and idx.indid < 2 idx.object_id = tbl.object_id and idx.index_id < <msparam>2</msparam> tbl.lob_data_space_id = dstext.data_space_id ctt.object_id = tbl.object_id declare @PageSize float select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=<msparam>1</msparam> and v.type=<msparam>E</msparam> CASE WHEN (OBJECTPROPERTY(tbl.id, N'tableisfake')=1) THEN 1 ELSE 0 END @PageSize*((SELECT sum(sidx.dpages) FROM dbo.sysindexes sidx WHERE sidx.indid < <msparam>2</msparam> and sidx.id = tbl.id) + (SELECT isnull(sum(sidx.used), 0) FROM dbo.sysindexes sidx WHERE sidx.indid = <msparam>255</msparam> and sidx.id = tbl.id)) @PageSize*(SELECT sum(isnull(sidx.used,0)-isnull(sidx.dpages,0)) FROM dbo.sysindexes sidx WHERE sidx.indid < <msparam>2</msparam> and sidx.id = tbl.id) CASE idx.indid WHEN 1 THEN 1 ELSE 0 END ISNULL((SELECT top 1 s.groupname FROM dbo.sysfilegroups s, dbo.sysindexes i WHERE i.id = tbl.id and i.indid in (0,1)AND i.groupid = s.groupid), N'') tbl.replinfo idx.rows OBJECTPROPERTY(tbl.id,N'IsAnsiNullsOn') OBJECTPROPERTY(tbl.id,N'IsQuotedIdentOn') idx.rowcnt CASE idx.index_id WHEN 1 THEN 1 ELSE 0 END tbl.is_replicated tbl.uses_ansi_nulls OBJECTPROPERTY(tbl.object_id,N'IsQuotedIdentOn') 0 objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat') ISNULL(dstext.name,N'') ISNULL( ( select sum (spart.rows) from sys.partitions spart where spart.object_id = tbl.object_id and spart.index_id < <msparam>2</msparam>), 0) ISNULL((select @PageSize * SUM(CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END) FROM sys.indexes as i JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id JOIN sys.allocation_units as a ON a.container_id = p.partition_id where i.object_id = tbl.object_id),0.0) ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END) FROM sys.indexes as i JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id JOIN sys.allocation_units as a ON a.container_id = p.partition_id where i.object_id = tbl.object_id),0.0) case when databasepropertyex(DB_NAME(), 'version') < 612 then 0 else objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat') end tbl.lock_escalation case when ctt.object_id is null then 0 else 1 end ISNULL(ctt.is_track_columns_updated_on,0) case when ((SELECT MAX(data_compression) FROM sys.partitions WHERE object_id = tbl.object_id AND index_id < 2) > 0) then 1 else 0 end u v.type = <msparam>V</msparam> v.type = <msparam>V</msparam> 0 v.has_opaque_metadata ) sp.xtype = <msparam>P</msparam> OR sp.xtype = <msparam>RF</msparam> sp.type = <msparam>P</msparam> OR sp.type = <msparam>RF</msparam> OR sp.type=<msparam>PC</msparam> spp.object_id = sp.object_id OBJECTPROPERTY(sp.id, N'ExecIsStartup') CASE sp.xtype WHEN N'RF' THEN 1 ELSE 0 END 1 ISNULL(spp.is_auto_executed,0) CASE sp.type WHEN N'RF' THEN 1 ELSE 0 END CASE WHEN sp.type = N'P' THEN 1 WHEN sp.type = N'PC' THEN 2 ELSE 1 END  lnklgn.ishqoutmap = 1 lnklgn.sid=xlnklgn.sid and ISNULL(xlnklgn.ishqoutmap,0) = 0 ll.local_principal_id = sp.principal_id ISNULL(xlnklgn.name, '') ISNULL(lnklgn.name, N'') convert(bit,lnklgn.selfoutmap) ISNULL(sp.name, '') ISNULL(ll.remote_name, N'') ll.uses_self_credential ll.modify_date  drop table #tmp_sp_catalogs drop table #tmp_catalog_exist_test drop table #tmp_sp_catalogs drop table #tmp_catalog_exist_test tsc.catalog_name ISNULL(tsc.description, '') tsc.is_catalog_support case when ( ((tsc.product_name in ('SQL Server')) or (UPPER(tsc.provider_name) like ('SQLNCLI%')) ) and (tsc.catalog_name in ('master','model','msdb','tempdb')) ) then 1 else 0 end  drop table #tmp_sp_tables_ex drop table #tmp_sp_tables_ex_all ISNULL(tste.TABLE_CAT,'') ISNULL(tste.TABLE_SCHEM,'') tste.TABLE_NAME tste.TABLE_TYPE ISNULL(tste.REMARKS,'') case when tste.TABLE_TYPE in ('SYSTEM TABLE') then 1 else 0 end  drop table #tmp_sp_tables_ex drop table #tmp_sp_tables_ex_all ISNULL(tste.TABLE_CAT,'') ISNULL(tste.TABLE_SCHEM,'') tste.TABLE_NAME tste.TABLE_TYPE tste.REMARKS case when tste.TABLE_TYPE in ('SYSTEM VIEW') then 1 else 0 end  create table #SmoMemberTemp ( role_col sysname NOT NULL, mem_col sysname NOT NULL, id_col varbinary(85) ) insert into #SmoMemberTemp (role_col, mem_col, id_col) exec master.dbo.sp_helpsrvrolemember drop table #SmoMemberTemp p.principal_id = m.member_principal_id lgnmb.mem_col p.name CASE p.type WHEN N'U' THEN 0 WHEN N'G' THEN 1 WHEN N'S' THEN 2 WHEN N'C' THEN 3 WHEN N'K' THEN 4 END / create table #tmp_sp_get_sqlagent_properties (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name nvarchar(128) null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null) insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled) exec msdb.dbo.sp_get_sqlagent_properties create table #tmpMsxAccountName ( domain nvarchar(255) null, username nvarchar(255) null) if ( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 760) ) or (@@microsoftversion / power(2, 24) > 8)) begin insert into #tmpMsxAccountName(domain, username) exec master.dbo.xp_sqlagent_msx_account N'GET' end create table #tmp_sp_get_sqlagent_properties (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name sysname null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null, replace_alert_tokens_enabled int null) insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled, replace_alert_tokens_enabled) exec msdb.dbo.sp_get_sqlagent_properties create table #tmpMsxAccountName (msx_connection int null, msx_credential_id int null, msx_credential_name nvarchar(300) null, msx_login_name nvarchar(300) null) insert into #tmpMsxAccountName(msx_connection, msx_credential_id, msx_credential_name, msx_login_name) exec msdb.dbo.sp_msx_get_account declare @DatabaseMailProfile nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'DatabaseMailProfile', @param = @DatabaseMailProfile OUT, @no_output = N'no_output' declare @AgentMailType int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'UseDatabaseMail', @param = @AgentMailType OUT, @no_output = N'no_output' declare @ServiceAccount nvarchar(512) EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'ObjectName', @ServiceAccount OUTPUT declare @ServiceStartMode int EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'Start', @ServiceStartMode OUTPUT declare @AgtGroup nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'AGTGroup', @AgtGroup OUTPUT drop table #tmp_sp_get_sqlagent_properties drop table #tmpMsxAccountName @@SERVERNAME serverproperty(N'Servername') ISNULL(tsgsp.msx_server_name,N'') tsgsp.sqlagent_type tsgsp.sqlserver_restart tsgsp.monitor_autostart tsgsp.jobhistory_max_rows tsgsp.jobhistory_max_rows_per_job tsgsp.errorlog_file tsgsp.errorlogging_level ISNULL(tsgsp.error_recipient,N'') tsgsp.job_shutdown_timeout ISNULL(tsgsp.email_profile,N'') tsgsp.email_save_in_sent_folder tsgsp.oem_errorlog tsgsp.cpu_poller_enabled tsgsp.idle_cpu_percent tsgsp.idle_cpu_duration tsgsp.login_timeout ISNULL(tsgsp.host_login_name,N'') ISNULL(tsgsp.local_host_server,N'') tsgsp.auto_start ISNULL((select top 1 ISNULL(domain + N'\', N'') + username as [UserName] from #tmpMsxAccountName),N'') tsgsp.sysadmin_only tsgsp.replace_alert_tokens_enabled ISNULL((select top 1 msx_login_name from #tmpMsxAccountName),N'') ISNULL((select top 1 msx_credential_name from #tmpMsxAccountName),N'') ISNULL(@DatabaseMailProfile,N'') ISNULL(@AgentMailType, 0) 1 @ServiceStartMode ISNULL(@ServiceAccount,N'') ISNULL(suser_sname(sid_binary(ISNULL(@AgtGroup,N''))),N'') 4 i.indid > <msparam>0</msparam> and i.indid < <msparam>255</msparam> and <msparam>1</msparam> != INDEXPROPERTY(i.id,i.name,N'IsStatistics') and <msparam>1</msparam> != INDEXPROPERTY(i.id,i.name,N'IsHypothetical') k.parent_obj = i.id AND k.name = i.name AND k.xtype IN (N'PK', N'UQ') i.index_id > <msparam>0</msparam> and i.is_hypothetical = <msparam>0</msparam> s.stats_id = i.index_id AND s.object_id = i.object_id k.parent_object_id = i.object_id AND k.unique_index_id = i.index_id xi.object_id = i.object_id AND xi.index_id = i.index_id xi2.object_id = xi.object_id AND xi2.index_id = xi.using_xml_index_id i.object_id = spi.object_id and i.index_id = spi.index_id i.object_id = si.object_id and i.index_id = si.index_id declare @PageSize float select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=<msparam>1</msparam> and v.type=<msparam>E</msparam> i.name i.indid OBJECTPROPERTY(i.id,N'IsMSShipped') INDEXPROPERTY(i.id,i.name,N'IsFulltextKey') CASE WHEN (i.status & 0x1000000) <> 0 THEN 1 ELSE 0 END INDEXPROPERTY(i.id,i.name,N'IndexFillFactor') CASE WHEN (i.indid = 1) THEN (i.used - i.dpages - ISNULL((SELECT SUM(j.used) FROM dbo.sysindexes AS j WHERE (j.indid > 1) AND (j.indid < 255) AND (j.id = i.id) AND (j.name = i.name)), 0)) * @PageSize ELSE i.used * @PageSize END CASE i.indid WHEN 1 THEN 1 ELSE 0 END CASE WHEN 0 != i.status&0x800 THEN 1 WHEN 0 != i.status&0x1000 THEN 2 ELSE 0 END i.status&2 CASE WHEN 0 != (i.status&0x01) THEN 1 ELSE 0 END INDEXPROPERTY(i.id, i.name, N'IsRowLockDisallowed') INDEXPROPERTY(i.id, i.name, N'IsPageLockDisallowed') INDEXPROPERTY(i.id, i.name, N'IsPadIndex') ISNULL(k.status & 4, 0) i.name i.index_id OBJECTPROPERTY(i.object_id,N'IsMSShipped') INDEXPROPERTY(i.object_id,i.name,N'IsFulltextKey') s.no_recompute i.fill_factor CASE i.index_id WHEN 1 THEN 1 ELSE 0 END i.is_primary_key + 2*i.is_unique_constraint i.is_unique i.ignore_dup_key ~i.allow_row_locks ~i.allow_page_locks INDEXPROPERTY(i.object_id, i.name, N'IsPadIndex') i.is_disabled case when i.type=3 then 1 else 0 end ISNULL(k.is_system_named, 0) ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END) FROM sys.partitions as p JOIN sys.allocation_units as a ON a.container_id = p.partition_id WHERE p.object_id = i.object_id AND p.index_id = i.index_id),0.0) case UPPER(ISNULL(xi.secondary_type,'')) when 'P' then 1 when 'V' then 2 when 'R' then 3 else 0 end ISNULL(xi2.name, N'') ISNULL(spi.spatial_index_type,0) ISNULL(si.bounding_box_xmin,0) ISNULL(si.bounding_box_ymin,0) ISNULL(si.bounding_box_xmax,0) ISNULL(si.bounding_box_ymax,0) ISNULL(si.level_1_grid,0) ISNULL(si.level_2_grid,0) ISNULL(si.level_3_grid,0) ISNULL(si.level_4_grid,0) ISNULL(si.cells_per_object,0) case when ((SELECT MAX(data_compression) FROM sys.partitions WHERE object_id = i.object_id AND index_id = i.index_id) > 0) then 1 else 0 end case when i.type=4 then 1 else 0 end i.has_filter ISNULL(i.filter_definition, N'') C clmns.id = ic.id and clmns.colid = ic.colid and clmns.number = 0 ic.column_id > 0 and (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0) clmns.object_id = ic.object_id and clmns.column_id = ic.column_id clmns.name ic.keyno COLUMNPROPERTY(ic.id, clmns.name, N'IsComputed') INDEXKEY_PROPERTY(ic.id, ic.indid, ic.keyno, N'IsDescending') clmns.name (case ic.is_included_column when 1 then ic.index_column_id else ic.key_ordinal end) COLUMNPROPERTY(ic.object_id, clmns.name, N'IsComputed') ic.is_descending_key ic.is_included_column  sp.proxy_id = tshj.proxy_id create table #tmp_sp_help_proxy (proxy_id int null, name nvarchar(300) null, credential_identity nvarchar(300) null, enabled tinyint null, description nvarchar(max) null, user_sid binary(200) null, credential_id int null, credential_identity_exists int null) insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) exec msdb.dbo.sp_help_proxy drop table #tmp_sp_help_proxy drop table #tmp_sp_help_jobstep tshj.step_name tshj.step_id CASE LOWER(tshj.subsystem) when 'tsql' THEN 1 WHEN 'activescripting' THEN 2 WHEN 'cmdexec' THEN 3 WHEN 'snapshot' THEN 4 WHEN 'logreader' THEN 5 WHEN 'distribution' THEN 6 WHEN 'merge' THEN 7 WHEN 'queuereader' THEN 8 WHEN 'analysisquery' THEN 9 WHEN 'analysiscommand' THEN 10 WHEN 'dts' THEN 11 WHEN 'ssis' THEN 11 WHEN 'powershell' THEN 12 ELSE 0 END ISNULL(tshj.command,N'') ISNULL(tshj.command,N'') tshj.cmdexec_success_code tshj.on_success_action tshj.on_success_step_id tshj.on_fail_action tshj.on_fail_step_id ISNULL(tshj.server,N'') ISNULL(tshj.database_name,N'') ISNULL(tshj.database_user_name,N'') tshj.retry_attempts tshj.retry_interval tshj.os_run_priority ISNULL(tshj.output_file_name,N'') tshj.last_run_outcome tshj.last_run_duration tshj.last_run_retries null tshj.flags ISNULL(sp.name,N'') ~ drop table #jobstep_outputlog_tmp tjsol.job_id tjsol.job_name tjsol.step_id tjsol.step_name tjsol.step_uid tjsol.date_created tjsol.date_modified tjsol.log_size tjsol.log  drop table #tmp_sp_help_jobschedule tshj.schedule_name tshj.schedule_id tshj.date_created tshj.enabled tshj.freq_type tshj.freq_interval tshj.freq_subday_type tshj.freq_subday_interval tshj.freq_relative_interval tshj.freq_recurrence_factor null 0 0 null (SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = tshj.schedule_id)) tshj.job_count tshj.schedule_uid create table #tmp_sp_help_schedule (schedule_id int null, schedule_uid uniqueidentifier null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, job_count int null) insert into #tmp_sp_help_schedule exec msdb.dbo.sp_help_schedule drop table #tmp_sp_help_schedule tshs.schedule_name tshs.schedule_id tshs.date_created tshs.enabled tshs.freq_type tshs.freq_interval tshs.freq_subday_type tshs.freq_subday_interval tshs.freq_relative_interval tshs.freq_recurrence_factor null 0 0 null tshs.job_count tshs.schedule_uid n sjs.name sjs.schedule_id sjs.date_created convert(bit,sjs.enabled) sjs.freq_type sjs.freq_interval sjs.freq_subday_type sjs.freq_subday_interval sjs.freq_relative_interval sjs.freq_recurrence_factor cast(null as datetime) 0 cast(null as datetime) 0 (SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = sjs.schedule_id)) Y declare @command nvarchar(300) select @command = 'dbcc checkprimaryfile (N'''+ @fileName + ''' , 2)' create table #smoPrimaryFileProp(property sql_variant NULL, value sql_variant NULL) insert #smoPrimaryFileProp exec (@command) drop table #smoPrimaryFileProp rtrim(@fileName) p.property p.value ' create table #OLEDBProv ( Name sysname NOT NULL, ParseName sysname NOT NULL,Description sysname NOT NULL ) insert #OLEDBProv EXECUTE master.dbo.xp_enum_oledb_providers drop table #OLEDBProv op.Name op.ParseName op.Description  drop table #OLEDBProvProp prop.Name prop.ID prop.Description prop.Flags  declare @command nvarchar(300) select @command = 'dbcc checkprimaryfile (N''' + @fileName + ''' , 3)' create table #SmoPrimayChildren(status INT,fileid INT,name sysname,filename nvarchar(512)) insert #SmoPrimayChildren exec (@command) drop table #SmoPrimayChildren s.name s.fileid case when (s.status & 0x40) = 0 then 1 else 0 end RTRIM(s.filename)  cstr.type = 'C'  tr.type = <msparam>TR</msparam> tr.type in (<msparam>TR</msparam>, <msparam>TA</msparam>) trr.object_id = tr.object_id tei.object_id = tr.object_id and tei.type=<msparam>1</msparam> teu.object_id = tr.object_id and teu.type=<msparam>2</msparam> ted.object_id = tr.object_id and ted.type=<msparam>3</msparam> mod.object_id = tr.object_id asmbl.assembly_id = mod.assembly_id 1-OBJECTPROPERTY(tr.id,N'ExecIsTriggerDisabled') OBJECTPROPERTY(tr.id, N'ExecIsInsteadOfTrigger') OBJECTPROPERTY(tr.id,N'ExecIsInsertTrigger') CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstInsertTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastInsertTrigger') = 1 THEN 2 ELSE 1 END OBJECTPROPERTY(tr.id,N'ExecIsUpdateTrigger') CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstUpdateTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastUpdateTrigger') = 1 THEN 2 ELSE 1 END OBJECTPROPERTY(tr.id,N'ExecIsDeleteTrigger') CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstDeleteTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastDeleteTrigger') = 1 THEN 2 ELSE 1 END OBJECTPROPERTY(tr.id,N'ExecIsTriggerNotForRepl') 1 ~trr.is_disabled trr.is_instead_of_trigger ISNULL(tei.object_id,0) CASE WHEN tei.is_first = 1 THEN 0 WHEN tei.is_last = 1 THEN 2 ELSE 1 END ISNULL(teu.object_id,0) CASE WHEN teu.is_first = 1 THEN 0 WHEN teu.is_last = 1 THEN 2 ELSE 1 END ISNULL(ted.object_id,0) CASE WHEN ted.is_first = 1 THEN 0 WHEN ted.is_last = 1 THEN 2 ELSE 1 END trr.is_not_for_replication CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END  udf.xtype in ( 'TF', 'FN', 'IF') and udf.name not like N'#%%' ret_param.id = udf.id and ret_param.number = <msparam>0</msparam> and ret_param.name='' udf.type in ('TF', 'FN', 'IF', 'FS', 'FT') ret_param.object_id = udf.object_id and ret_param.is_output = <msparam>1</msparam> OBJECTPROPERTY(udf.id, N'IsDeterministic') (case when 1 = OBJECTPROPERTY(udf.id, N'IsScalarFunction') then 1 when 1 = OBJECTPROPERTY(udf.id, N'IsInlineFunction') then 3 when 1 = OBJECTPROPERTY(udf.id, N'IsTableFunction') then 2 else 0 end) 1 isnull(OBJECTPROPERTYEX(udf.id, N'IsQuotedIdentOn'),1) OBJECTPROPERTYEX(udf.object_id, N'IsDeterministic') (case when 'FN' = udf.type then 1 when 'FS' = udf.type then 1 when 'IF' = udf.type then 3 when 'TF' = udf.type then 2 when 'FT' = udf.type then 2 else 0 end) CASE WHEN udf.type IN ('FN','IF','TF') THEN 1 WHEN udf.type IN ('FS','FT') THEN 2 ELSE 1 END OBJECTPROPERTYEX(udf.object_id, N'IsQuotedIdentOn') ret_param.name 91 ik.id = clmns.id and 0 != ik.status & 0x0800 cik.indid = ik.indid and cik.colid = clmns.colid and cik.id = clmns.id d.id = clmns.cdefault and 0=d.category & 0x0800 r.id = clmns.domain ic.object_id = clmns.object_id and ic.column_id = clmns.column_id cc.object_id = clmns.object_id and cc.column_id = clmns.column_id ik.object_id = clmns.object_id and 1=ik.is_primary_key cik.index_id = ik.index_id and cik.column_id = clmns.column_id and cik.object_id = clmns.object_id and 0 = cik.is_included_column d.object_id = clmns.default_object_id r.object_id = clmns.rule_object_id clmns.name clmns.colid clmns.isnullable clmns.iscomputed ISNULL(cik.colid, 0) COLUMNPROPERTY(clmns.id, clmns.name, N'UsesAnsiTrim') clmns.colstat & 2 clmns.colstat & 8 COLUMNPROPERTY(clmns.id, clmns.name, N'IsFulltextIndexed') cast(clmns.id as nvarchar(20)) + '_' + cast(clmns.colid as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20)) + '_0' COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') ISNULL((select top 1 1 from dbo.sysforeignkeys AS colfk where colfk.fkey = clmns.colid and colfk.fkeyid = clmns.id), 0) ISNULL(clmns.collation, N'') (case when clmns.cdefault = 0 then N'' else d.name end) (case when clmns.cdefault = 0 then N'' else user_name(d.uid) end) (case when clmns.domain = 0 then N'' else r.name end) (case when clmns.domain = 0 then N'' else user_name(r.uid) end) clmns.name clmns.column_id clmns.is_nullable clmns.is_computed ISNULL(cik.index_column_id, 0) clmns.is_ansi_padded clmns.is_rowguidcol ISNULL(ic.is_not_for_replication, 0) COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsFulltextIndexed') ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsDeterministic'),0) ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsPrecise'),0) ISNULL(cc.definition,N'') ISNULL(cc.is_persisted, 0) ISNULL(clmns.collation_name, N'') ISNULL((select TOP 1 1 from sys.foreign_key_columns AS colfk where colfk.parent_column_id = clmns.column_id and colfk.parent_object_id = clmns.object_id), 0) clmns.is_identity ISNULL(ic.seed_value,0) ISNULL(ic.increment_value,0) (case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else d.name end) (case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else schema_name(d.schema_id) end) (case when clmns.rule_object_id = 0 then N'' else r.name end) (case when clmns.rule_object_id = 0 then N'' else schema_name(r.schema_id) end) clmns.is_filestream clmns.is_sparse clmns.is_column_set  clmns.object_id = oc.object_id and clmns.column_id = oc.column_id oc.order_column_id oc.is_descending clmns.name @ sv.category_id = tshc.category_id tsho_e.id = sv.notify_email_operator_id tsho_ns.id = sv.notify_netsend_operator_id tsho_p.id = sv.notify_page_operator_id create table #tmp_sp_help_category (category_id int null, category_type tinyint null, name nvarchar(128) null) insert into #tmp_sp_help_category exec msdb.dbo.sp_help_category create table #tmp_sp_help_operator (id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null) if ((ISNULL(IS_SRVROLEMEMBER('sysadmin'), 0) != 0) or exists (select * from sysprotects where OBJECT_NAME(id) = 'sp_help_operator' and action = 224 and protecttype != 206 and (uid = 0 or uid = USER_ID()) ) ) insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator create table #tmp_sp_help_operator (id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null) insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator drop table #tmp_sp_help_operator drop table #tmp_sp_help_category sv.name sv.job_id sv.originating_server sv.enabled ISNULL(sv.description,N'') sv.start_step_id ISNULL(suser_sname(sv.owner_sid), N'') sv.notify_level_eventlog sv.notify_level_email sv.notify_level_netsend sv.notify_level_page sv.delete_level sv.date_created sv.date_modified sv.version_number tshc.name sv.category_id tshc.category_type ISNULL(tsho_e.name,N'') ISNULL(tsho_ns.name,N'') ISNULL(tsho_p.name,N'') null null null null null null null null null null null  declare @Arg sysname declare @Param sysname declare @n int select @n=0 select @Param='dummy' create table #srvargs (value nvarchar(512) NOT NULL) while(not @Param is null) begin select @Param=null select @Arg='SqlArg'+convert(nvarchar,@n) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT insert #srvargs select @Param where not @Param is null select @n=@n+1 end drop table #srvargs arg.value  u.uid = m.id drop table #tmp_role_member_ids u.principal_id = m.id drop table #tmp_role_member_ids u.name u.uid suser_sname(u.sid) u.principal_id suser_sname(u.sid) 0  drop table #tmpntgrp t.name t.description ] create table #tmpntlogin ( [Account name] sysname NULL, Type sysname NULL, [Privilege] sysname NULL, [Mapped login name] sysname NULL, [Permission path] sysname NULL) insert into #tmpntlogin exec master.dbo.xp_logininfo drop table #tmpntlogin [Account name] Type [Privilege] [Mapped login name] [Permission path]  obj.xtype=N'R' obj.type=N'R' and (0 = obj.parent_object_id or obj.parent_object_id is null) O   v.type = 'C ' and not cfg.status is null and v.number = cfg.config ucfg.config = cfg.config v.name v.number v.low v.high cfg.status & 1 cfg.status & 2 ucfg.value cfg.value cfg.comment cfg.name cfg.configuration_id cfg.minimum cfg.maximum cfg.is_dynamic cfg.is_advanced cfg.value cfg.value_in_use cfg.description  nd.memory_node_id = mnd.memory_node_id 1=1 ORDER BY ID ASC inf.affinity_type nd.node_state_desc mnd.memory_node_id nd.processor_group nd.cpu_affinity_mask nd.online_scheduler_mask  obj.xtype=N'D' and obj.name not like N'#%%' and 0=(obj.category & 0x0800) obj.type=N'D' and not(obj.parent_object_id > 0)  st.xusertype != st.xtype and st.name != N'sysname' def.id = st.tdefault rul.id = st.domain st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id def.object_id = st.default_object_id rul.object_id = st.rule_object_id st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id and st.is_table_type != 1 def.object_id = st.default_object_id rul.object_id = st.rule_object_id st.xusertype st.user_type_id st.length st.allownulls st.variable (case when st.tdefault = 0 then N'' else def.name end) (case when st.tdefault = 0 then N'' else user_name(def.uid) end) (case when st.domain = 0 then N'' else rul.name end) (case when st.domain = 0 then N'' else user_name(rul.uid) end) ISNULL(st.collation, N'') st.max_length st.is_nullable (case when st.default_object_id = 0 then N'' else def.name end) (case when st.default_object_id = 0 then N'' else schema_name(def.schema_id) end) (case when st.rule_object_id = 0 then N'' else rul.name end) (case when st.rule_object_id = 0 then N'' else schema_name(rul.schema_id) end) ISNULL(st.collation_name, N'') CASE WHEN baset.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END  obj.object_id = tt.type_table_object_id tt.name tt.type_table_object_id SCHEMA_NAME(tt.schema_id) obj.create_date obj.modify_date tt.max_length tt.is_nullable ISNULL(tt.collation_name, N'') case when tt.is_user_defined = 1 then 1 else 0 end cstr.type=N'F' rfr.constid = cstr.id ki.indid = rfr.rkeyindid AND ki.id = rfr.rkeyid rfr.rkeyid = rtbl.id ki.index_id = cstr.key_index_id and ki.object_id = cstr.referenced_object_id rtbl.object_id = cstr.referenced_object_id ki.name rtbl.name user_name(rtbl.uid) OBJECTPROPERTY(cstr.id, N'CnstIsDeleteCascade') OBJECTPROPERTY(cstr.id, N'CnstIsUpdateCascade') ki.name rtbl.name schema_name(rtbl.schema_id) cstr.delete_referential_action cstr.update_referential_action  param.number = 1 or (param.number = 0 and 1 = OBJECTPROPERTY(param.id, N'IsScalarFunction') and isnull(param.name, '') != '') param.is_output = 0 param.is_readonly  t.id = c.id and t.type = 'U' t.object_id = c.object_id c.name t.name user_name(t.uid) schema_name(t.schema_id)  @@OPTIONS & 1 @@OPTIONS & 2 @@OPTIONS & 4 @@OPTIONS & 8 @@OPTIONS & 16 @@OPTIONS & 32 @@OPTIONS & 64 @@OPTIONS & 128 @@OPTIONS & 256 @@OPTIONS & 512 @@OPTIONS & 1024 @@OPTIONS & 2048 @@OPTIONS & 4096 @@OPTIONS & 8192 @@OPTIONS & 16384  st.xusertype = st.xtype or st.name=N'sysname' st.schema_id=4 CASE WHEN st.name IN (N'decimal', N'numeric') THEN 1 ELSE 0 END CASE WHEN st.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END CASE WHEN st.name IN (N'decimal', N'int', N'numeric', N'smallint', N'tinyint', N'bigint') THEN 1 ELSE 0 END CASE WHEN st.name IN ( N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar' ) THEN 1 ELSE 0 END st.allownulls CASE WHEN st.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN st.prec ELSE st.length END st.xprec st.xscale ISNULL(st.collation,N'') st.is_nullable CASE WHEN st.name IN (N'nchar', N'nvarchar') THEN st.max_length/2 ELSE st.max_length END ISNULL(st.collation_name,N'') st.user_type_id st.precision st.scale =  (o.status & 0x10) <> 0 o.name o.phyname o.cntrltype o.status & 0x08 o.physical_name o.type 0 d xproc.xtype='X' xproc.type='X' > `  k  OBJECTPROPERTY({0}.id,N'ExecIsAnsiNullsOn') OBJECTPROPERTY({0}.id,N'ExecIsQuotedIdentOn') OBJECTPROPERTY({0}.id, N'IsSchemaBound') (SELECT TOP 1 encrypted FROM dbo.syscomments p WHERE {0}.id = p.id AND p.colid=1 and p.number < 2) {0}.status & 4 CASE WHEN ISNULL({0}.definition, s{0}.definition) IS NULL THEN 1 ELSE 0 END ISNULL({0}.is_recompiled, s{0}.is_recompiled) `  K declare @HkeyLocal nvarchar(18) declare @ServicesRegPath nvarchar(34) declare @SqlServiceRegPath sysname declare @BrowserServiceRegPath sysname declare @MSSqlServerRegPath nvarchar(31) declare @InstanceNamesRegPath nvarchar(59) declare @InstanceRegPath sysname declare @SetupRegPath sysname declare @NpRegPath sysname declare @TcpRegPath sysname declare @RegPathParams sysname declare @FilestreamRegPath sysname select @HkeyLocal=N'HKEY_LOCAL_MACHINE' -- Instance-based paths select @MSSqlServerRegPath=N'SOFTWARE\Microsoft\MSSQLServer' select @InstanceRegPath=@MSSqlServerRegPath + N'\MSSQLServer' select @FilestreamRegPath=@InstanceRegPath + N'\Filestream' select @SetupRegPath=@MSSqlServerRegPath + N'\Setup' select @RegPathParams=@InstanceRegPath+'\Parameters' -- Services select @ServicesRegPath=N'SYSTEM\CurrentControlSet\Services' select @SqlServiceRegPath=@ServicesRegPath + N'\MSSQLSERVER' select @BrowserServiceRegPath=@ServicesRegPath + N'\SQLBrowser' -- InstanceId setting select @InstanceNamesRegPath=N'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL' -- Network settings select @NpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Np' select @TcpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Tcp' declare @SmoTapeLoadWaitTime int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT declare @SqlGroup nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLGroup', @SqlGroup OUTPUT declare @FilestreamLevel int exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'EnableLevel', @FilestreamLevel OUTPUT declare @FilestreamShareName nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'ShareName', @FilestreamShareName OUTPUT create table #tempproc(value int) insert #tempproc exec msdb.sys.sp_getProcessorUsage declare @ServiceInstanceId nvarchar(512) EXEC master.sys.xp_regread @HkeyLocal, @InstanceNamesRegPath, @@SERVICENAME, @ServiceInstanceId OUTPUT declare @ServiceAccount nvarchar(512) EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'ObjectName', @ServiceAccount OUTPUT declare @ServiceStartMode int EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'Start', @ServiceStartMode OUTPUT declare @NamedPipesEnabled int exec master.dbo.xp_instance_regread @HkeyLocal, @NpRegPath, N'Enabled', @NamedPipesEnabled OUTPUT declare @TcpEnabled int EXEC master.sys.xp_instance_regread @HkeyLocal, @TcpRegPath, N'Enabled', @TcpEnabled OUTPUT declare @InstallSharedDirectory nvarchar(512) EXEC master.sys.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @InstallSharedDirectory OUTPUT declare @BrowserServiceAccount nvarchar(512) EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'ObjectName', @BrowserServiceAccount OUTPUT declare @BrowserStartMode int EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'Start', @BrowserStartMode OUTPUT declare @NumErrorLogs int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'NumErrorLogs', @NumErrorLogs OUTPUT declare @SmoDefaultFile nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultData', @SmoDefaultFile OUTPUT declare @SmoDefaultLog nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultLog', @SmoDefaultLog OUTPUT declare @SmoLoginMode int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'LoginMode', @SmoLoginMode OUTPUT declare @SmoAuditLevel int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'AuditLevel', @SmoAuditLevel OUTPUT declare @BackupDirectory nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'BackupDirectory', @BackupDirectory OUTPUT declare @SmoMailProfile nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'MailAccountName', @SmoMailProfile OUTPUT declare @SmoPerfMonMode int exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Performance', @SmoPerfMonMode OUTPUT if @SmoPerfMonMode is null begin set @SmoPerfMonMode = 1000 end declare @InstallSqlDataDir nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLDataRoot', @InstallSqlDataDir OUTPUT create table #SVer(ID int, Name sysname, Internal_Value int, Value nvarchar(512)) insert #SVer exec master.dbo.xp_msver declare @SmoRoot nvarchar(512) exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @SmoRoot OUTPUT declare @Arg sysname declare @Param sysname declare @MasterPath nvarchar(512) declare @LogPath nvarchar(512) declare @ErrorLogPath nvarchar(512) declare @n int select @n=0 select @Param='dummy' while(not @Param is null) begin select @Param=null select @Arg='SqlArg'+convert(nvarchar,@n) exec master.dbo.xp_instance_regread @HkeyLocal, @RegPathParams, @Arg, @Param OUTPUT if(@Param like '-d%') begin select @Param=substring(@Param, 3, 255) select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-l%') begin select @Param=substring(@Param, 3, 255) select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-e%') begin select @Param=substring(@Param, 3, 255) select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end select @n=@n+1 end drop table #SVer drop table #tempproc @SmoAuditLevel ISNULL(@SmoDefaultFile,N'') ISNULL(@SmoDefaultLog,N'') ISNULL(@NumErrorLogs, -1) (case when @SmoLoginMode < 3 then @SmoLoginMode else 9 end) ISNULL(@SmoMailProfile,N'') @BackupDirectory @SmoPerfMonMode ISNULL(@InstallSqlDataDir,N'') @@SERVICENAME (select Value from #SVer where Name = N'ProductName') (select Value from #SVer where Name = N'WindowsVersion') (select Value from #SVer where Name = N'Language') (select Value from #SVer where Name = N'Platform') (select Internal_Value from #SVer where Name = N'PhysicalMemory') (select Internal_Value from #SVer where Name = N'ProcessorCount') FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') @LogPath @MasterPath @ErrorLogPath @SmoRoot (@@microsoftversion / 0x1000000) & 0xff (@@microsoftversion / 0x10000) & 0xff @@microsoftversion & 0xffff case when 'a' <> 'A' then 1 else 0 end @@MAX_PRECISION case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end SERVERPROPERTY(N'ProductVersion') SERVERPROPERTY(N'Edition') SERVERPROPERTY(N'ProductLevel') SERVERPROPERTY('IsSingleUser') SERVERPROPERTY('EngineEdition') convert(sysname, serverproperty(N'collation')) SERVERPROPERTY('IsClustered') SERVERPROPERTY(N'MachineName') @SmoTapeLoadWaitTime SERVERPROPERTY(N'ResourceVersion') SERVERPROPERTY(N'ResourceLastUpdateDateTime') SERVERPROPERTY(N'CollationID') SERVERPROPERTY(N'ComparisonStyle') SERVERPROPERTY(N'SqlCharSet') SERVERPROPERTY(N'SqlCharSetName') SERVERPROPERTY(N'SqlSortOrder') SERVERPROPERTY(N'SqlSortOrderName') SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS') SERVERPROPERTY(N'BuildClrVersion') null ISNULL(@ServiceInstanceId,N'') @ServiceStartMode ISNULL(@ServiceAccount,N'') @NamedPipesEnabled @TcpEnabled ISNULL(@InstallSharedDirectory,N'') @BrowserStartMode ISNULL(@BrowserServiceAccount,N'') @@SERVERNAME serverproperty(N'Servername') ISNULL(serverproperty(N'instancename'),N'') 0x01 0x0010 case when OBJECT_ID(N'msdb.sys.sp_getProcessorUsage', N'P') is not null then (select top 1 value from #tempproc)/(select Internal_Value from #SVer where Name = N'ProcessorCount') else -1 end ISNULL(suser_sname(sid_binary(ISNULL(@SqlGroup,N''))),N'') -1 @FilestreamLevel ISNULL(@FilestreamShareName,N'') (select physical_memory_in_use_kb from sys.dm_os_process_memory)  B cstr.xtype='D' and cstr.name not like N'#%%' and 0!=convert(bit,cstr.category & 0x0800) ` c.colid case when c.number > 1 then c.number else 0 end c.text cast(c.id as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_' + cast(case when c.number > 1 then c.number else 0 end as nvarchar(20))  (st.indid <> 0 and st.indid <> 255) and 0 = OBJECTPROPERTY(st.id,N'IsMSShipped') st.name st.indid case when (st.status & 16777216) <> 0 then 1 else 0 end STATS_DATE(st.id, st.indid) 1 - INDEXPROPERTY(st.id,st.name,N'IsStatistics') INDEXPROPERTY(st.id,st.name,N'IsAutoStatistics') '' st.stats_id st.no_recompute STATS_DATE(st.object_id, st.stats_id) 1 - INDEXPROPERTY(st.object_id,st.name,N'IsStatistics') st.auto_created '' null st.has_filter ISNULL(st.filter_definition ,N'')  cl.name COLLATIONPROPERTY(name, 'CodePage') COLLATIONPROPERTY(name, 'LCID') COLLATIONPROPERTY(name, 'ComparisonStyle') cl.description COLLATIONPROPERTY(name, 'Version')  l.req_mode = v.number and v.type = N'L' and db_id() = l.rsc_dbid l.req_spid v.name db_name(l.rsc_dbid) object_name(l.rsc_objid) object_name(l.rsc_indid) l.req_status 4 create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24)) create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int) insert #err_log_tmp exec master.dbo.sp_enumerrorlogs drop table #err_log_tmp er.ArchiveNo er.ArchiveNo CONVERT(datetime, er.CreateDate, 101) er.Size  create table #err_log_text_tmp_final(Text nvarchar(4000), ArchiveNo int null, LogDate datetime null, ProcessInfo nvarchar(100) null) declare @text_offset int declare @process_info_length int set @text_offset = 34 set @process_info_length = 10 drop table #err_log_text_tmp_final ert.LogDate ert.ProcessInfo ert.Text  r.session_id = p.session_id pr.spid = p.session_id p.spid p.spid suser_sname(p.sid) p.hostname p.status p.cmd db_name(p.dbid) p.cpu p.memusage p.blocked case when p.spid < 51 then 1 else 0 end p.session_id p.session_id p.login_name p.host_name ISNULL(r.status, N'') ISNULL(r.command, N'') ISNULL(db_name(r.database_id), ISNULL(db_name(pr.dbid), N'')) p.cpu_time p.memory_usage ISNULL(r.blocking_session_id, 0) ~p.is_user_process p.program_name 0 p.ecid pr.ecid  v.number = l.mode AND v.type = N'L' v2.number = l.ltype AND v2.type = N'LR' CREATE TABLE #t(spid int, mode int, dbid int NULL, objid int, objid2 int, indid int, status tinyint, ltype tinyint, objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL) INSERT #t SELECT spid = req_spid, mode = req_mode, dbid=rsc_dbid, objid=l.rsc_objid, objid2=l.rsc_objid, indid=l.rsc_indid, status = l.req_status, ltype = l.rsc_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL FROM master.dbo.syslockinfo l WHERE rsc_dbid != db_id('tempdb') OR rsc_objid != object_id('#t') CREATE TABLE #t(spid int, mode int, dbid int NULL, objid bigint, objid2 bigint, indid int, status tinyint, ltype nvarchar(120), objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL) INSERT #t SELECT spid = request_session_id, mode = case request_mode when N'NL' then 0 when N'SCH_S' then 1 when N'SCH_M' then 2 when N'S' then 3 when N'U' then 4 when N'X' then 5 when N'IS' then 6 when N'IU' then 7 when N'IX' then 8 when N'SIU' then 9 when N'SIX' then 10 when N'UIX' then 11 when N'BU' then 12 when N'RS_S' then 13 when N'RS_U' then 14 when N'RI_NL' then 15 when N'RI_S' then 16 when N'RI_U' then 17 when N'RI_X' then 18 when N'RX_S' then 19 when N'RX_U' then 20 when N'RX_X' then 21 when N'LAST_MODE' then 22 end, dbid=resource_database_id, objid=l.resource_associated_entity_id, objid2=l.resource_associated_entity_id, indid=NULL, status = case l.request_status when N'GRANT' then 1 when N'CONVERT' then 2 when N'WAIT' then 3 end, ltype = l.resource_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL FROM master.sys.dm_tran_locks l WHERE resource_database_id != db_id('tempdb') OR resource_associated_entity_id != object_id('#t') update #t set dbname = d.name FROM #t t LEFT OUTER JOIN master.dbo.sysdatabases d ON d.dbid = t.dbid update #t set dbname = d.name FROM #t t LEFT OUTER JOIN sys.databases d ON d.database_id = t.dbid update #t set objid2 = -objid2 where dbname is null DECLARE name_cursor CURSOR FOR select t.dbid, t.dbname FROM #t t GROUP BY t.dbid, t.dbname OPEN name_cursor DECLARE @dbid int DECLARE @dbname sysname DECLARE @sql nvarchar(1000) FETCH NEXT FROM name_cursor INTO @dbid, @dbname WHILE (@@FETCH_STATUS <> -1) BEGIN IF (@@FETCH_STATUS <> -2) BEGIN SELECT @sql = 'use ' + quotename(@dbname) + ' update #t set objname = o.name, indname = i.name, sch=user_name(o.uid) FROM #t AS t '+ 'LEFT JOIN dbo.sysobjects AS o ON o.id = t.objid LEFT OUTER JOIN dbo.sysindexes AS i ON i.id = t.objid AND i.indid = t.indid '+ 'WHERE t.ltype in (4,5) AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20)) IF( NOT @dbname IS NULL )--resource database SELECT @sql = 'use ' + quotename(@dbname) ELSE SELECT @sql = '' SELECT @sql = @sql + ' update #t set objname = o.name, indname = i.name, sch=schema_name(o.schema_id) FROM #t AS t '+ 'LEFT JOIN sys.all_objects AS o ON o.object_id = t.objid2 LEFT OUTER JOIN sys.indexes AS i ON i.object_id = t.objid2 AND i.index_id = t.indid '+ 'WHERE t.ltype in (''UNUSED1'',''OBJECT'') AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20)) EXEC(@sql) END FETCH NEXT FROM name_cursor INTO @dbid, @dbname END CLOSE name_cursor DEALLOCATE name_cursor drop table #t l.spid v.name ISNULL(l.dbname,N'') ISNULL(l.sch,N'') ISNULL(l.objname,N'') ISNULL(l.indname,N'') l.status  create table #tpdv ( Name nvarchar(512) NOT NULL) insert #tpdv (Name) EXECUTE master.dbo.xp_get_tape_devices drop table #tpdv Name  NULL NULL NULL  DECLARE @PageSize float SELECT @PageSize=v.low/1024.0 FROM master..spt_values v WHERE v.number=1 AND v.type='E' rtrim(s.name) s.fileid rtrim(s.filename) (s.size * @PageSize) case when s.maxsize=-1 then -1 else s.maxsize * @PageSize end CASE WHEN (0 <>(s.status & 0x100000)) THEN s.growth ELSE s.growth * @PageSize END CASE WHEN s.growth=0 THEN 99 WHEN (0 <>(s.status & 0x100000)) THEN 1 ELSE 0 END CASE when s.growth=0 THEN 99 ELSE s.is_percent_growth END CASE when s.growth=0 THEN (CASE WHEN s.type = 2 THEN 0 ELSE 99 END) ELSE s.is_percent_growth END null s.name s.file_id s.physical_name s.size * CONVERT(float,8) CASE when s.max_size=-1 then -1 else s.max_size * CONVERT(float,8) END CASE s.is_percent_growth WHEN 1 THEN s.growth ELSE s.growth*8 END s.is_media_read_only s.is_read_only case s.state when 6 then 1 else 0 end s.is_sparse ISNULL(fs.num_of_reads, 0) ISNULL(fs.num_of_writes, 0) ISNULL(fs.num_of_bytes_read, 0) ISNULL(fs.num_of_bytes_written, 0)  bkps.name bkps.backup_set_id bkps.backup_set_uuid bkps.media_set_id bkps.first_family_number bkps.first_media_number bkps.last_family_number bkps.last_media_number bkps.catalog_family_number bkps.catalog_media_number bkps.position bkps.expiration_date bkps.software_vendor_id bkps.description bkps.user_name bkps.software_major_version bkps.software_minor_version bkps.software_build_version bkps.time_zone bkps.mtf_minor_version bkps.first_lsn bkps.last_lsn bkps.checkpoint_lsn bkps.database_backup_lsn bkps.database_creation_date bkps.backup_start_date bkps.backup_finish_date CASE bkps.type WHEN 'D' THEN 1 WHEN 'I' THEN 2 WHEN 'L' THEN 3 WHEN 'F' THEN 4 END bkps.sort_order bkps.code_page bkps.compatibility_level bkps.database_version bkps.backup_size bkps.database_name bkps.server_name bkps.machine_name bkps.flags bkps.unicode_locale bkps.unicode_compare_style bkps.collation_name bkps.is_password_protected bkps.compressed_backup_size  rthist.restore_history_id rthist.restore_date rthist.destination_database_name rthist.user_name rthist.backup_set_id CASE rthist.restore_type WHEN 'D' THEN 1 WHEN 'F' THEN 2 WHEN 'L' THEN 3 WHEN 'V' THEN 4 END rthist.replace rthist.recovery rthist.restart rthist.stop_at rthist.device_count rthist.stop_at_mark_name rthist.stop_before  rtsf.file_number rtsf.destination_phys_drive rtsf.destination_phys_name  rtsfg.filegroup_name  bkpf.first_family_number bkpf.first_media_number bkpf.filegroup_name bkpf.page_size bkpf.file_number bkpf.backed_up_page_count bkpf.file_type bkpf.source_file_block_size bkpf.file_size bkpf.logical_name bkpf.physical_drive bkpf.physical_name  bkpmf.media_family_id bkpmf.family_sequence_number bkpmf.media_count bkpmf.logical_device_name bkpmf.physical_device_name CASE WHEN bkpmf.device_type > 100 THEN bkpmf.device_type - 100 ELSE bkpmf.device_type END CASE WHEN bkpmf.device_type > 100 THEN 1 ELSE 0 END bkpmf.physical_block_size  bkpms.media_set_id bkpms.media_uuid bkpms.media_family_count bkpms.name bkpms.description bkpms.software_name bkpms.software_vendor_id bkpms.MTF_major_version bkpms.is_compressed E create table #tmp_sp_help_alert (id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, type int null) insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert create table #tmp_sp_help_alert (id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, wmi_namespace nvarchar(max) null, wmi_query nvarchar(max) null, type int null) insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert drop table #tmp_sp_help_alert tsha.id tsha.name ISNULL(tsha.event_source,N'') tsha.message_id tsha.severity tsha.enabled tsha.delay_between_responses null null ISNULL(tsha.notification_message,N'') tsha.include_event_description ISNULL(tsha.database_name,N'') ISNULL(tsha.event_description_keyword,N'') tsha.occurrence_count null ISNULL(tsha.job_id, convert(uniqueidentifier, N'00000000-0000-0000-0000-000000000000')) ISNULL(tsha.job_name,N'') tsha.has_notification ISNULL(tsha.performance_condition,N'') ISNULL(tsha.category_name,N'') ISNULL(tsha.wmi_namespace,N'') ISNULL(tsha.wmi_query,N'') tsha.type  create table #tmp_sp_help_operator (id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null) insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator drop table #tmp_sp_help_operator tsho.name tsho.id tsho.enabled ISNULL(tsho.email_address,N'') null ISNULL(tsho.pager_address,N'') null 0 0 0 0 0 0 tsho.pager_days ISNULL(tsho.netsend_address,N'') null ISNULL(tsho.category_name,N'')  create table #tmp_sp_help_targetserver (server_id int null, server_name sysname null, location nvarchar(200) null, time_zone_adjustment int null, enlist_date datetime null, last_poll_date datetime null, status int null, unread_instructions int null, local_time datetime null, enlisted_by_nt_user nvarchar(200) null, poll_interval int null) insert into #tmp_sp_help_targetserver exec msdb.dbo.sp_help_targetserver drop table #tmp_sp_help_targetserver tsht.server_name tsht.server_id tsht.location tsht.time_zone_adjustment tsht.enlist_date tsht.last_poll_date tsht.status tsht.poll_interval tsht.unread_instructions tsht.local_time # declare @FailSafeOperator nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output' declare @NotificationMethod int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output' declare @ForwardingServer nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output' declare @ForwardingSeverity int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output' declare @ForwardAlways int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output' declare @PagerToTemplate nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output' declare @PagerCCTemplate nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output' declare @PagerSubjectTemplate nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output' declare @PagerSendSubjectOnly int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output' declare @FailSafeEmailAddress nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output' declare @FailSafePagerAddress nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output' declare @FailSafeNetSendAddress nvarchar(255) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output' declare @FailSafeOperator nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output' declare @NotificationMethod int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output' declare @ForwardingServer nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output' declare @ForwardingSeverity int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output' declare @ForwardAlways int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output' declare @PagerToTemplate nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output' declare @PagerCCTemplate nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output' declare @PagerSubjectTemplate nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output' declare @PagerSendSubjectOnly int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output' declare @FailSafeEmailAddress nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output' declare @FailSafePagerAddress nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output' declare @FailSafeNetSendAddress nvarchar(255) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output' N'AlertSystem' ISNULL(@FailSafeOperator,N'') @NotificationMethod ISNULL(@ForwardingServer,N'') @ForwardingSeverity ISNULL(@ForwardAlways, 0) ISNULL(@PagerToTemplate,N'') ISNULL(@PagerCCTemplate,N'') ISNULL(@PagerSubjectTemplate,N'') @PagerSendSubjectOnly ISNULL(@FailSafeEmailAddress,N'') ISNULL(@FailSafePagerAddress,N'') ISNULL(@FailSafeNetSendAddress,N'')  create table #tmp_sp_help_targetservergroup (servergroup_id int null, name nvarchar(128) null) insert into #tmp_sp_help_targetservergroup exec msdb..sp_help_targetservergroup drop table #tmp_sp_help_targetservergroup tsht.name tsht.servergroup_id  drop table #tmp_sp_help_targetservergroup_member tshtm.server_name tshtm.server_id R {0}.definition  ) create table #tmp_sp_help_jobhistory (instance_id int null, job_id uniqueidentifier null, job_name sysname null, step_id int null, step_name sysname null, sql_message_id int null, sql_severity int null, message nvarchar(4000) null, run_status int null, run_date int null, run_time int null, run_duration int null, operator_emailed sysname null, operator_netsent sysname null, operator_paged sysname null, retries_attempted int null, server sysname null) insert into #tmp_sp_help_jobhistory exec msdb.dbo.sp_help_jobhistory @mode='FULL' drop table #tmp_sp_help_jobhistory tshj.instance_id tshj.sql_message_id tshj.message tshj.step_id tshj.step_name tshj.sql_severity tshj.job_id tshj.job_name tshj.run_status convert(datetime, stuff(stuff(cast(tshj.run_date as nchar(8)), 7, 0, '-'), 5, 0, '-') + N' ' + stuff(stuff(substring(cast(1000000 + tshj.run_time as nchar(7)), 2, 6), 5, 0, ':'), 3, 0, ':'), 120) tshj.run_duration tshj.operator_emailed tshj.operator_netsent tshj.operator_paged tshj.retries_attempted tshj.server drop table #tmp_sp_help_jobserver tshj.server_name tshj.server_id tshj.enlist_date tshj.last_poll_date null tshj.last_run_duration tshj.last_run_outcome tshj.last_outcome_message  create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int) insert #err_log_tmp exec master.dbo.sp_enumerrorlogs 2 create table #err_log_tmp(ArchiveNo int, CreateDate datetime, Size int, ErrorLog NVARCHAR(255)) DECLARE @errorlog_path NVARCHAR(255) DECLARE @errorlog_dir NVARCHAR(255) DECLARE @errorlog_partfile NVARCHAR(255) DECLARE @errorlog NVARCHAR(255) DECLARE @dotIdx INT DECLARE @slashIdx INT DECLARE @logexists INT DECLARE @ArchiveNo INT EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'ErrorLogFile', @errorlog_path OUTPUT, N'no_output' EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'ErrorLogFile', @errorlog_path OUTPUT, N'no_output' --> EXECUTE master.dbo.xp_fileexist @errorlog_path, @logexists OUTPUT IF(@logexists = 1) BEGIN create table #err_logs_dir_tmp(ErrorLog NVARCHAR(255), d int, f int) create table #file_details_tmp(AltName NVARCHAR(32) NULL, Size int, CDate INT, CTime INT, LWDate INT, LWTime INT, LADate INT, LATime INT, Attributes INT) INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog_path SET @errorlog_path = REVERSE(@errorlog_path) SET @dotIdx = CHARINDEX(N'.', @errorlog_path); SET @slashIdx = CHARINDEX(N'\', @errorlog_path); SET @errorlog_path = REVERSE(@errorlog_path) SET @errorlog_dir = @errorlog_path if(@slashIdx <> 0) BEGIN SET @errorlog_dir = SUBSTRING(@errorlog_path, 1, LEN(@errorlog_path) - @slashIdx) SET @errorlog_partfile= SUBSTRING(@errorlog_path, LEN(@errorlog_path) - @slashIdx + 2, 255) END if(@dotIdx <> 0) BEGIN SET @errorlog_partfile = SUBSTRING(@errorlog_partfile, 1, LEN(@errorlog_partfile) - @dotIdx + 1) END INSERT #err_logs_dir_tmp EXECUTE master.dbo.xp_dirtree @errorlog_dir, 1, 1 INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog) SELECT 0, -- convert the 2 int's (20020912 152026) to yyyy-mm-dd hh:mi:ss CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' + STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':') , 120), Size, @errorlog_path FROM #file_details_tmp DELETE #file_details_tmp declare crslogs insensitive cursor for ( SELECT ErrorLog FROM #err_logs_dir_tmp WHERE ErrorLog like @errorlog_partfile + '[1-9]' ) for read only open crslogs fetch crslogs into @errorlog while @@fetch_status >= 0 begin SET @ArchiveNo = CONVERT(INT, SUBSTRING(@errorlog, LEN(@errorlog_partfile) + 1, 1)) SET @errorlog = @errorlog_dir + '\' + @errorlog INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog) SELECT @ArchiveNo, -- convert the 2 int's (20020912 152026) to yyyy-mm-dd hh:mi:ss CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' + STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':') , 120), Size, @errorlog FROM #file_details_tmp DELETE #file_details_tmp fetch crslogs into @errorlog end close crslogs deallocate crslogs DROP TABLE #file_details_tmp DROP TABLE #err_logs_dir_tmp END drop table #err_log_tmp er.ArchiveNo er.ArchiveNo er.CreateDate CONVERT(datetime, er.CreateDate, 101) er.Size drop table #err_log_text_tmp ert.LogDate ert.ErrorLevel ert.Text  convert(nchar(1), am.name)= convert(nchar(1), srddrv.DriveName) create table #avmed (name nvarchar(512), low_free int, high_free int, type int) insert #avmed exec master.dbo.xp_availablemedia update #avmed set name = convert(nchar(2), name) where type != 4 create table #tmpsrdDrive ( DriveName nvarchar(255) ) insert #tmpsrdDrive select * from ::fn_servershareddrives() create table #tmpsrdDrive ( DriveName nvarchar(255) ) insert #tmpsrdDrive select * from sys.fn_servershareddrives() drop table #avmed drop table #tmpsrdDrive am.name am.low_free am.high_free case when am.low_free >= 0 then 0. + am.low_free else 4294967296. + am.low_free end + 4294967296. * am.high_free am.type case when srddrv.DriveName is null then 0 else 1 end 3 clmns.id = c.id and clmns.colid = c.colid clmns.name c.keyno COL_NAME(sic.object_id, sic.column_id) sic.stats_column_id   declare @UserOption int select @UserOption=c.value from master.dbo.sysconfigures c, master.dbo.spt_values v where v.type = 'C ' and not c.status is null and v.number = c.config and v.name='user options' declare @UserOption int select @UserOption=convert(int, c.value) from sys.configurations c where c.name='user options' @UserOption & 1 @UserOption & 2 @UserOption & 4 @UserOption & 8 @UserOption & 16 @UserOption & 32 @UserOption & 64 @UserOption & 128 @UserOption & 256 @UserOption & 512 @UserOption & 1024 @UserOption & 2048 @UserOption & 4096 @UserOption & 8192 @UserOption & 16384 {% create table #SVer(ID int, Name sysname, Internal_Value int, Value nvarchar(512)) insert #SVer exec master.dbo.xp_msver declare @NetName sysname exec master.dbo.xp_getnetname @NetName OUTPUT declare @SmoRoot nvarchar(512) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT declare @RegPathParams sysname declare @Arg sysname declare @Param sysname declare @MasterPath nvarchar(512) declare @LogPath nvarchar(512) declare @ErrorLogPath nvarchar(512) declare @n int select @n=0 select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters' select @Param='dummy' while(not @Param is null) begin select @Param=null select @Arg='SqlArg'+convert(nvarchar,@n) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT if(@Param like '-d%') begin select @Param=substring(@Param, 3, 255) select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-l%') begin select @Param=substring(@Param, 3, 255) select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-e%') begin select @Param=substring(@Param, 3, 255) select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end select @n=@n+1 end drop table #SVer create table #SVer(ID int, Name sysname, Internal_Value int, Value nvarchar(512)) insert #SVer exec master.dbo.xp_msver declare @SmoRoot nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT declare @RegPathParams sysname declare @Arg sysname declare @Param sysname declare @MasterPath nvarchar(512) declare @LogPath nvarchar(512) declare @ErrorLogPath nvarchar(512) declare @n int select @n=0 select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters' select @Param='dummy' while(not @Param is null) begin select @Param=null select @Arg='SqlArg'+convert(nvarchar,@n) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT if(@Param like '-d%') begin select @Param=substring(@Param, 3, 255) select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-l%') begin select @Param=substring(@Param, 3, 255) select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end else if(@Param like '-e%') begin select @Param=substring(@Param, 3, 255) select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param))) end select @n=@n+1 end drop table #SVer (select Value from #SVer where Name = N'ProductName') (select Value from #SVer where Name = N'WindowsVersion') (select Value from #SVer where Name = N'Language') (select Value from #SVer where Name = N'Platform') (select Internal_Value from #SVer where Name = N'PhysicalMemory') (select Internal_Value from #SVer where Name = N'ProcessorCount') FULLTEXTSERVICEPROPERTY('IsFullTextInstalled') @LogPath @MasterPath @ErrorLogPath @SmoRoot (@@microsoftversion / 0x1000000) & 0xff (@@microsoftversion / 0x10000) & 0xff @@microsoftversion & 0xffff case when 'a' <> 'A' then 1 else 0 end @@MAX_PRECISION (select Value from #SVer where Name = N'ProductVersion') @NetName SUBSTRING(@@version,PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2,PATINDEX(N'% on %',@@version)-(PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2)) SERVERPROPERTY(N'ProductVersion') SERVERPROPERTY(N'Edition') SERVERPROPERTY(N'ProductLevel') SERVERPROPERTY('IsSingleUser') SERVERPROPERTY('EngineEdition') convert(sysname, serverproperty(N'collation')) SERVERPROPERTY('IsClustered') SERVERPROPERTY(N'MachineName') case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end null SERVERPROPERTY(N'BuildClrVersion') SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS') SERVERPROPERTY(N'ResourceVersion') SERVERPROPERTY(N'ResourceLastUpdateDateTime') SERVERPROPERTY(N'CollationID') SERVERPROPERTY(N'ComparisonStyle') SERVERPROPERTY(N'SqlCharSet') SERVERPROPERTY(N'SqlCharSetName') SERVERPROPERTY(N'SqlSortOrder') SERVERPROPERTY(N'SqlSortOrderName')  declare @NumErrorLogs int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT declare @SmoDefaultFile nvarchar(512) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT declare @SmoDefaultLog nvarchar(512) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT declare @SmoLoginMode int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT declare @SmoAuditLevel int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT declare @SmoTapeLoadWaitTime int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT declare @BackupDirectory nvarchar(512) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT declare @SmoMailProfile nvarchar(512) exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT declare @SmoPerfMonMode int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT if @SmoPerfMonMode is null begin set @SmoPerfMonMode = 1000 end declare @NumErrorLogs int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT declare @SmoDefaultFile nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT declare @SmoDefaultLog nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT declare @SmoLoginMode int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT declare @SmoAuditLevel int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT declare @BackupDirectory nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT declare @SmoMailProfile nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT declare @SmoPerfMonMode int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT if @SmoPerfMonMode is null begin set @SmoPerfMonMode = 1000 end declare @SmoTapeLoadWaitTime int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT @SmoAuditLevel ISNULL(@SmoDefaultFile,N'') ISNULL(@SmoDefaultLog,N'') ISNULL(@NumErrorLogs, -1) (case when @SmoLoginMode < 3 then @SmoLoginMode else 9 end) @SmoTapeLoadWaitTime -1 ISNULL(@SmoMailProfile,N'') @BackupDirectory @SmoPerfMonMode Q cfk.colid=fk.fkey and cfk.id = fk.fkeyid crk.colid=fk.rkey and crk.id = fk.rkeyid fk.parent_column_id = cfk.column_id and fk.parent_object_id = cfk.object_id fk.referenced_column_id = crk.column_id and fk.referenced_object_id = crk.object_id cfk.name fk.keyno crk.name cfk.name fk.constraint_column_id crk.name  comt.colid comt.text cast(comt.id as nvarchar(20)) + N'_' + cast(comt.number as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_0' 3 s{0}.uid = {0}.uid s{0}.name s{0}.name SCHEMA_NAME({0}.schema_id)  CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END {0}.is_ms_shipped  CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END case when {0}.is_ms_shipped = 1 then 1 when ( select major_id from sys.extended_properties where major_id = {0}.object_id and minor_id = 0 and class = 1 and name = N'microsoft_database_tools_support') is not null then 1 else 0 end case when {0}.is_ms_shipped = 1 then 1 else 0 end  cstr.status & 4 1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotTrusted'),0) 1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsDisabled'),0) ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotRepl'),0) cstr.is_system_named ~cstr.is_not_trusted ~cstr.is_disabled cstr.is_not_for_replication I ic.partition_ordinal > 0 c.object_id = ic.object_id and c.column_id = ic.column_id c.name ic.partition_ordinal + spf.name spf.function_id spf.boundary_value_on_right spf.create_date spf.fanout  st.system_type_id = st.user_type_id and spp.system_type_id = st.system_type_id spp.parameter_id ISNULL(spp.collation_name,N'')  sprv.boundary_id sprv.value 3 sps.function_id = spf.function_id sps.name sps.data_space_id spf.name ISNULL((case when spf.fanout < (select count(*) from sys.destination_data_spaces sdd where sps.data_space_id = sdd.partition_scheme_id) then (select sf.name from sys.filegroups sf, sys.destination_data_spaces sdd where sf.data_space_id = sdd.data_space_id and sps.data_space_id = sdd.partition_scheme_id and sdd.destination_id > spf.fanout) else null end),N'')  sf.data_space_id = sdd.data_space_id sf.name sdd.destination_id t.object_id = {0}.object_id fg{0}.groupname CASE WHEN 'FG'=ds{0}.type THEN ds{0}.name ELSE N'' END CASE WHEN 'PS'=ds{0}.type THEN ds{0}.name ELSE N'' END CASE WHEN 'PS'=ds{0}.type THEN 1 ELSE 0 END CASE WHEN 'FD'=dstbl.type THEN dstbl.name ELSE N'' END CASE WHEN 'PS'=dstbl.type THEN dstbl.name ELSE N'' END  usrt.xusertype = {0}.xusertype baset.xusertype = {0}.xtype and baset.xusertype = baset.xtype s{0}.uid = usrt.uid (baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) (baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) or ((baset.system_type_id = {0}.system_type_id) and (baset.user_type_id = {0}.user_type_id) and (baset.is_user_defined = 0) and (baset.is_assembly_type = 1)) usrt.user_type_id = {0}.user_type_id s{0}.schema_id = usrt.schema_id xsc{0}.xml_collection_id = {0}.xml_collection_id s2{0}.schema_id = xsc{0}.schema_id usrt.name s{0}.name ISNULL(baset.name, N'') CASE WHEN baset.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN {0}.prec ELSE {0}.length END {0}.xprec {0}.xscale CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND {0}.max_length <> -1 THEN {0}.max_length/2 ELSE {0}.max_length END {0}.precision {0}.scale ISNULL(xsc{0}.name, N'') ISNULL(s2{0}.name, N'') ISNULL( (case {0}.is_xml_document when 1 then 2 else 1 end), 0) CASE WHEN usrt.is_table_type = 1 THEN N'structured' ELSE N'' END  p.name p.value  p.name p.value w ; create table #extprops(owner sysname null, objname sysname null, name sysname, value sql_variant null) drop table #extprops = create table #extprops(owner sysname null, parentobjname sysname null, objname sysname null, name sysname , value sql_variant null) drop table #extprops create table #extprops(owner sysname null, parentobjname sysname null, objname sysname null, name sysname , value sql_variant null) drop table #extprops   p.major_id=0 AND p.minor_id=0 AND p.class=0 p.name p.value k s{0}.uid = {0}.uid s{0}.schema_id = {0}.schema_id s1{0}.principal_id = ISNULL({0}.principal_id, (TYPEPROPERTY(QUOTENAME(SCHEMA_NAME({0}.schema_id)) + '.' + QUOTENAME({0}.name), 'OwnerId'))) {0}.name s{0}.name s{0}.name ISNULL(s1{0}.name, N'') case when {0}.principal_id is null then 1 else 0 end  tbl.id = {0}.id tbl.object_id = {0}.object_id {0}.name tbl.name user_name(tbl.uid) schema_name(tbl.schema_id) n sm{0}.object_id = {0}.object_id ssm{0}.object_id = {0}.object_id OBJECTPROPERTYEX({0}.object_id,N'ExecIsAnsiNullsOn') OBJECTPROPERTYEX({0}.object_id,N'ExecIsQuotedIdentOn') OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound')  am{0}.object_id = {0}.object_id asmbl{0}.assembly_id = am{0}.assembly_id case when am{0}.object_id is null then N'' else asmbl{0}.name end case when am{0}.object_id is null then N'' else am{0}.assembly_class end case when am{0}.object_id is null then N'' else am{0}.assembly_method end bkps.backup_set_id = btmp.backup_set_id declare @server_name nvarchar(512) set @server_name = @@SERVERNAME declare @server_name nvarchar(512) set @server_name = cast(serverproperty(N'Servername') as nvarchar(512)) DECLARE @first_full_backupset_id INTEGER, @first_full_backup_startdate DATETIME, @count_entries INTEGER, @in_restore_plan BIT, @last_backupset_type CHAR(1), @last_backupset_id INTEGER, @last_backupset_family_guid UNIQUEIDENTIFIER, @last_backupset_diff_base_guid UNIQUEIDENTIFIER, @last_backupset_recovery_fork_guid UNIQUEIDENTIFIER, @full_backupset_id INTEGER, @full_backupset_start_date DATETIME, @full_backupset_recovery_fork_guid UNIQUEIDENTIFIER, @loop_var BIT, @loop_backup_set_id INTEGER, @loop_start_date DATETIME, @count_unique_fork_guid INTEGER, @t1_backup_set_id INTEGER, @t1_type CHAR(1), @t1_backup_start_date DATETIME, @t1_first_recovery_fork_guid UNIQUEIDENTIFIER, @t1_last_recovery_fork_guid UNIQUEIDENTIFIER, @t1_first_lsn NUMERIC(25, 0), @t1_last_lsn NUMERIC(25, 0), @t1_checkpoint_lsn NUMERIC(25, 0), @t1_database_backup_lsn NUMERIC(25, 0), @t1_fork_point_lsn NUMERIC(25, 0), @t1_backup_set_uuid UNIQUEIDENTIFIER, @t1_database_guid UNIQUEIDENTIFIER, @t1_diff_base_guid UNIQUEIDENTIFIER, @t2_backup_set_id INTEGER, @t2_type CHAR(1), @t2_backup_start_date DATETIME, @t2_first_recovery_fork_guid UNIQUEIDENTIFIER, @t2_last_recovery_fork_guid UNIQUEIDENTIFIER, @t2_first_lsn NUMERIC(25, 0), @t2_last_lsn NUMERIC(25, 0), @t2_checkpoint_lsn NUMERIC(25, 0), @t2_database_backup_lsn NUMERIC(25, 0), @t2_fork_point_lsn NUMERIC(25, 0), @t2_backup_set_uuid UNIQUEIDENTIFIER, @t2_database_guid UNIQUEIDENTIFIER, @t2_diff_base_guid UNIQUEIDENTIFIER CREATE TABLE #backupset( backup_set_id INTEGER NOT NULL, is_in_restore_plan BIT NOT NULL, backup_start_date DATETIME NOT NULL, type CHAR(1) NOT NULL, database_name NVARCHAR(256) NOT NULL, database_guid UNIQUEIDENTIFIER , family_guid UNIQUEIDENTIFIER , first_recovery_fork_guid UNIQUEIDENTIFIER , last_recovery_fork_guid UNIQUEIDENTIFIER , first_lsn NUMERIC(25, 0) , last_lsn NUMERIC(25, 0) , checkpoint_lsn NUMERIC(25, 0) , database_backup_lsn NUMERIC(25, 0) , fork_point_lsn NUMERIC(25, 0) , restore_till_lsn NUMERIC(25, 0) , backup_set_uuid UNIQUEIDENTIFIER , differential_base_guid UNIQUEIDENTIFIER ) /**********************************************************************/ /* Identify the first */ /**********************************************************************/ SELECT @first_full_backupset_id = backupset_outer.backup_set_id ,@first_full_backup_startdate = backupset_outer.backup_start_date FROM msdb.dbo.backupset backupset_outer WHERE backupset_outer.database_name = @db_name AND backupset_outer.server_name = @server_name AND backupset_outer.type = 'D' -- Full Database Backup AND backupset_outer.backup_start_date = ( SELECT MAX(backupset_inner.backup_start_date) FROM msdb.dbo.backupset backupset_inner WHERE backupset_inner.database_name = backupset_outer.database_name AND backupset_inner.server_name = @server_name AND backupset_inner.type = backupset_outer.type AND backupset_inner.backup_start_date <= @restore_to_datetime) /*******************************************************************************************/ /* Find the first full database backup needed in the restore plan and store its attributes */ /* in #backupset work table */ /*******************************************************************************************/ INSERT #backupset( backup_set_id ,is_in_restore_plan ,backup_start_date ,type ,database_name ) SELECT backup_set_id ,1 -- The full database backup is always needed for the restore plan ,backup_start_date ,type ,database_name FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id AND msdb.dbo.backupset.server_name = @server_name /***************************************************************/ /* Find the log and differential backups that occurred after */ /* the full backup and store them in #backupset work table */ /***************************************************************/ INSERT #backupset( backup_set_id ,is_in_restore_plan ,backup_start_date ,type ,database_name ) SELECT backup_set_id ,0 ,backup_start_date ,type ,database_name FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.database_name = @db_name AND msdb.dbo.backupset.server_name = @server_name AND msdb.dbo.backupset.type IN ('I', 'L') -- Differential, Log backups AND msdb.dbo.backupset.backup_start_date >= @first_full_backup_startdate /**********************************************************************************/ /* identify and mark the backup logs that need to be included in the restore plan */ /**********************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'I' AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date) FROM #backupset backupset_inner WHERE backupset_inner.type = #backupset.type AND backupset_inner.backup_start_date <= @restore_to_datetime) /**************************************************************************************/ /* Log backups that occurred after the different are always part of the restore plan. */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date <= @restore_to_datetime AND #backupset.backup_start_date >= (SELECT backupset_inner.backup_start_date FROM #backupset backupset_inner WHERE backupset_inner.type = 'I' AND backupset_inner.is_in_restore_plan = 1) /**************************************************************************************/ /* If @restore_to_datetime is greater than the last startdate of the last log backup, */ /* include the next log backup in the restore plan */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date) FROM #backupset backupset_inner WHERE backupset_inner.type = 'L' AND backupset_inner.backup_start_date > @restore_to_datetime AND backupset_inner.is_in_restore_plan = 0) /**************************************************************************************/ /* If there are no differential backups, all log backups that occurred after the full */ /* backup are needed in the restore plan. */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date <= @restore_to_datetime AND NOT EXISTS(SELECT * FROM #backupset backupset_inner WHERE backupset_inner.type = 'I') DECLARE @first_full_backupset_id INTEGER, @first_full_backup_startdate DATETIME, @count_entries INTEGER, @in_restore_plan BIT, @last_backupset_type CHAR(1), @last_backupset_id INTEGER, @last_backupset_family_guid UNIQUEIDENTIFIER, @last_backupset_diff_base_guid UNIQUEIDENTIFIER, @last_backupset_recovery_fork_guid UNIQUEIDENTIFIER, @full_backupset_id INTEGER, @full_backupset_start_date DATETIME, @full_backupset_recovery_fork_guid UNIQUEIDENTIFIER, @loop_var BIT, @loop_backup_set_id INTEGER, @loop_start_date DATETIME, @count_unique_fork_guid INTEGER, @t1_backup_set_id INTEGER, @t1_type CHAR(1), @t1_backup_start_date DATETIME, @t1_first_recovery_fork_guid UNIQUEIDENTIFIER, @t1_last_recovery_fork_guid UNIQUEIDENTIFIER, @t1_first_lsn NUMERIC(25, 0), @t1_last_lsn NUMERIC(25, 0), @t1_checkpoint_lsn NUMERIC(25, 0), @t1_database_backup_lsn NUMERIC(25, 0), @t1_fork_point_lsn NUMERIC(25, 0), @t1_backup_set_uuid UNIQUEIDENTIFIER, @t1_database_guid UNIQUEIDENTIFIER, @t1_diff_base_guid UNIQUEIDENTIFIER, @t2_backup_set_id INTEGER, @t2_type CHAR(1), @t2_backup_start_date DATETIME, @t2_first_recovery_fork_guid UNIQUEIDENTIFIER, @t2_last_recovery_fork_guid UNIQUEIDENTIFIER, @t2_first_lsn NUMERIC(25, 0), @t2_last_lsn NUMERIC(25, 0), @t2_checkpoint_lsn NUMERIC(25, 0), @t2_database_backup_lsn NUMERIC(25, 0), @t2_fork_point_lsn NUMERIC(25, 0), @t2_backup_set_uuid UNIQUEIDENTIFIER, @t2_database_guid UNIQUEIDENTIFIER, @t2_diff_base_guid UNIQUEIDENTIFIER CREATE TABLE #backupset( backup_set_id INTEGER NOT NULL, is_in_restore_plan BIT NOT NULL, backup_start_date DATETIME NOT NULL, type CHAR(1) NOT NULL, database_name NVARCHAR(256) NOT NULL, database_guid UNIQUEIDENTIFIER , family_guid UNIQUEIDENTIFIER , first_recovery_fork_guid UNIQUEIDENTIFIER , last_recovery_fork_guid UNIQUEIDENTIFIER , first_lsn NUMERIC(25, 0) , last_lsn NUMERIC(25, 0) , checkpoint_lsn NUMERIC(25, 0) , database_backup_lsn NUMERIC(25, 0) , fork_point_lsn NUMERIC(25, 0) , restore_till_lsn NUMERIC(25, 0) , backup_set_uuid UNIQUEIDENTIFIER , differential_base_guid UNIQUEIDENTIFIER ) /**********************************************************************/ /* Identify the first */ /**********************************************************************/ SELECT @first_full_backupset_id = backupset_outer.backup_set_id ,@first_full_backup_startdate = backupset_outer.backup_start_date FROM msdb.dbo.backupset backupset_outer WHERE backupset_outer.database_name = @db_name AND backupset_outer.server_name = @server_name AND backupset_outer.type = 'D' -- Full Database Backup AND backupset_outer.backup_start_date = ( SELECT MAX(backupset_inner.backup_start_date) FROM msdb.dbo.backupset backupset_inner WHERE backupset_inner.database_name = backupset_outer.database_name AND backupset_inner.server_name = @server_name AND backupset_inner.type = backupset_outer.type AND backupset_inner.backup_start_date <= @restore_to_datetime AND backupset_inner.is_copy_only = 0 ) AND backupset_outer.is_copy_only = 0 /*******************************************************************************************/ /* Find the first full database backup needed in the restore plan and store its attributes */ /* in #backupset work table */ /*******************************************************************************************/ INSERT #backupset( backup_set_id ,is_in_restore_plan ,backup_start_date ,type ,database_name ,last_recovery_fork_guid ) SELECT backup_set_id ,1 -- The full database backup is always needed for the restore plan ,backup_start_date ,type ,database_name ,last_recovery_fork_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id AND msdb.dbo.backupset.server_name = @server_name /***************************************************************/ /* Find the log and differential backups that occurred after */ /* the full backup and store them in #backupset work table */ /***************************************************************/ INSERT #backupset( backup_set_id ,is_in_restore_plan ,backup_start_date ,type ,database_name ,last_recovery_fork_guid ) SELECT backup_set_id ,0 ,backup_start_date ,type ,database_name ,last_recovery_fork_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.database_name = @db_name AND msdb.dbo.backupset.server_name = @server_name AND msdb.dbo.backupset.type IN ('I', 'L') -- Differential, Log backups AND msdb.dbo.backupset.backup_start_date >= @first_full_backup_startdate /**********************************************************************************/ /* identify and mark the backup logs that need to be included in the restore plan */ /**********************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'I' AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date) FROM #backupset backupset_inner WHERE backupset_inner.type = #backupset.type AND backupset_inner.backup_start_date <= @restore_to_datetime) /**************************************************************************************/ /* Log backups that occurred after the different are always part of the restore plan. */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date <= @restore_to_datetime AND #backupset.backup_start_date >= (SELECT backupset_inner.backup_start_date FROM #backupset backupset_inner WHERE backupset_inner.type = 'I' AND backupset_inner.is_in_restore_plan = 1) /**************************************************************************************/ /* If @restore_to_datetime is greater than the last startdate of the last log backup, */ /* include the next log backup in the restore plan */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date) FROM #backupset backupset_inner WHERE backupset_inner.type = 'L' AND backupset_inner.backup_start_date > @restore_to_datetime AND backupset_inner.is_in_restore_plan = 0) /**************************************************************************************/ /* If there are no differential backups, all log backups that occurred after the full */ /* backup are needed in the restore plan. */ /**************************************************************************************/ UPDATE #backupset SET is_in_restore_plan = 1 WHERE #backupset.type = 'L' AND #backupset.backup_start_date <= @restore_to_datetime AND NOT EXISTS(SELECT * FROM #backupset backupset_inner WHERE backupset_inner.type = 'I') /**************************************************************************************/ /* The above plan is based on backup_start_date which fails in case when the DB is */ /* restored to a previous state i.e forked. In which case we need to base it on lsn */ /* numbers. This forking condition can be checked by matching the */ /* last_recovery_fork_guid of the backupset if it doesn't match, we need to change */ /* the plan. */ /**************************************************************************************/ SELECT @count_unique_fork_guid = COUNT( DISTINCT last_recovery_fork_guid ) FROM #backupset IF @count_unique_fork_guid > 1 BEGIN DELETE FROM #backupset /**************************************************************************************/ /* First we look for a T-Log backup taken after the given point-in-time to get the */ /* tail log, that can be used to restore to the exact point-in-time. */ /**************************************************************************************/ INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.database_name = @db_name AND msdb.dbo.backupset.type IN ('D', 'L') AND msdb.dbo.backupset.backup_start_date >= @restore_to_datetime ORDER BY msdb.dbo.backupset.backup_start_date ASC, msdb.dbo.backupset.last_lsn ASC SELECT @last_backupset_type = bset.type FROM #backupset as bset IF @last_backupset_type = 'D' --Full BEGIN DELETE FROM #backupset END /**********************************************************************/ /* If no T-Log backup exits for after the time T, get the last backup */ /**********************************************************************/ SELECT @count_entries = COUNT(bset.backup_set_id) FROM #backupset as bset IF @count_entries < 1 BEGIN INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.database_name = @db_name AND msdb.dbo.backupset.backup_start_date <= @restore_to_datetime ORDER BY msdb.dbo.backupset.backup_start_date DESC, msdb.dbo.backupset.last_lsn DESC END SELECT @last_backupset_type = bset.type, @last_backupset_id = bset.backup_set_id, @last_backupset_family_guid = bset.family_guid, @last_backupset_diff_base_guid = bset.differential_base_guid, @last_backupset_recovery_fork_guid = bset.last_recovery_fork_guid FROM #backupset as bset /**************************************************************************************/ /* If the selected backup is Full ('D') return. */ /**************************************************************************************/ IF (@last_backupset_type = 'D') BEGIN GOTO done END /**************************************************************************************/ /* If the selected backup is Differential('I'),select the Diff-base backup(Full) also */ /**************************************************************************************/ IF (@last_backupset_type = 'I') BEGIN INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_uuid = @last_backupset_diff_base_guid AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid GOTO done END SELECT @t1_type = bset.type, @t1_backup_set_id = bset.backup_set_id, @t1_backup_set_uuid = bset.backup_set_uuid, @t1_backup_start_date = bset.backup_start_date, @t1_diff_base_guid = bset.differential_base_guid, @t1_last_recovery_fork_guid = bset.last_recovery_fork_guid, @t1_first_recovery_fork_guid = bset.first_recovery_fork_guid, @t1_database_guid = bset.database_guid, @t1_first_lsn = bset.first_lsn, @t1_last_lsn = bset.last_lsn, @t1_checkpoint_lsn = bset.checkpoint_lsn, @t1_database_backup_lsn = bset.database_backup_lsn, @t1_fork_point_lsn = bset.fork_point_lsn FROM #backupset as bset SET @loop_backup_set_id = @t1_backup_set_id SET @loop_start_date = @t1_backup_start_date /**************************************************************************************/ /* This Loop iterates thru the backup with the same family_guid in reverse order and */ /* constructs the T-Log chain, until it finds the compatible Diff or Backup */ /**************************************************************************************/ SET @loop_var = 1 WHILE ( @loop_var = 1 ) BEGIN SELECT TOP(1) @t2_backup_set_id = backup_set_id, @t2_backup_set_uuid = backup_set_uuid, @t2_backup_start_date = backup_start_date, @t2_type = type, @t2_first_recovery_fork_guid = first_recovery_fork_guid, @t2_last_recovery_fork_guid= last_recovery_fork_guid, @t2_database_guid = database_guid, @t2_first_lsn = first_lsn, @t2_last_lsn = last_lsn, @t2_checkpoint_lsn = checkpoint_lsn, @t2_database_backup_lsn = database_backup_lsn, @t2_fork_point_lsn= fork_point_lsn, @t2_diff_base_guid = differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.family_guid = @last_backupset_family_guid AND msdb.dbo.backupset.backup_start_date <= @loop_start_date AND msdb.dbo.backupset.backup_set_id < @loop_backup_set_id ORDER BY msdb.dbo.backupset.backup_start_date DESC, msdb.dbo.backupset.last_lsn DESC, msdb.dbo.backupset.backup_set_id DESC IF( @t2_backup_set_id IS NULL OR @t2_backup_set_id = @loop_backup_set_id) BEGIN GOTO done END IF( @t1_fork_point_lsn IS NULL ) BEGIN IF (@t2_type = 'D' AND @t2_database_guid = @t1_database_guid AND @t2_first_lsn = @t1_first_lsn AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid ) BEGIN GOTO AddFullBackup END IF (@t2_type = 'I' AND @t2_database_guid = @t1_database_guid AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid ) BEGIN GOTO AddDiffBackup END IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn) BEGIN INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id SET @t1_type = @t2_type SET @t1_backup_set_id = @t2_backup_set_id SET @t1_backup_set_uuid = @t2_backup_set_uuid SET @t1_backup_start_date = @t2_backup_start_date SET @t1_diff_base_guid = @t2_diff_base_guid SET @t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid SET @t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid SET @t1_database_guid = @t2_database_guid SET @t1_first_lsn = @t2_first_lsn SET @t1_last_lsn = @t2_last_lsn SET @t1_checkpoint_lsn = @t2_checkpoint_lsn SET @t1_database_backup_lsn = @t2_database_backup_lsn SET @t1_fork_point_lsn = @t2_fork_point_lsn END END ELSE BEGIN IF (@t2_type = 'D' AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn <= @t1_fork_point_lsn) OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn > @t1_fork_point_lsn AND @t2_last_lsn < @t1_last_lsn)) BEGIN GOTO AddFullBackup END IF (@t2_type = 'I' AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn <= @t1_fork_point_lsn) OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn > @t1_fork_point_lsn AND @t2_last_lsn < @t1_last_lsn)) BEGIN GOTO AddDiffBackup END IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn) BEGIN INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id SET @t1_type = @t2_type SET @t1_backup_set_id = @t2_backup_set_id SET @t1_backup_set_uuid = @t2_backup_set_uuid SET @t1_backup_start_date = @t2_backup_start_date SET @t1_diff_base_guid = @t2_diff_base_guid SET @t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid SET @t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid SET @t1_database_guid = @t2_database_guid SET @t1_first_lsn = @t2_first_lsn SET @t1_last_lsn = @t2_last_lsn SET @t1_checkpoint_lsn = @t2_checkpoint_lsn SET @t1_database_backup_lsn = @t2_database_backup_lsn SET @t1_fork_point_lsn = @t2_fork_point_lsn END END SET @loop_backup_set_id = @t2_backup_set_id SET @loop_start_date = @t2_backup_start_date END AddFullBackup: INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id GOTO done AddDiffBackup: INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id INSERT #backupset( backup_set_id, is_in_restore_plan, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid ) SELECT TOP(1) backup_set_id, 1, backup_start_date, type, database_name, database_guid, family_guid, first_recovery_fork_guid, last_recovery_fork_guid, first_lsn, last_lsn, checkpoint_lsn, database_backup_lsn, fork_point_lsn, backup_set_uuid, differential_base_guid FROM msdb.dbo.backupset WHERE msdb.dbo.backupset.backup_set_uuid = @t2_diff_base_guid AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid done: SELECT @count_entries = COUNT( bset.backup_set_id ) FROM #backupset AS bset WHERE bset.type = 'D' /**************************************************************************************/ /* If the backupset info in the msdb is incomplete then the restore_plan may be */ /* broken. In those cases just don't return anything. */ /**************************************************************************************/ IF @count_entries < 1 BEGIN DELETE FROM #backupset END END drop table #backupset bkps.name bkps.backup_set_id btmp.is_in_restore_plan bkps.backup_set_uuid bkps.media_set_id bkps.first_family_number bkps.first_media_number bkps.last_family_number bkps.last_media_number bkps.catalog_family_number bkps.catalog_media_number bkps.position bkps.expiration_date bkps.software_vendor_id bkps.description bkps.user_name bkps.software_major_version bkps.software_minor_version bkps.software_build_version bkps.time_zone bkps.mtf_minor_version bkps.first_lsn bkps.last_lsn bkps.checkpoint_lsn bkps.database_backup_lsn bkps.database_creation_date bkps.backup_start_date bkps.backup_finish_date bkps.type bkps.sort_order bkps.code_page bkps.compatibility_level bkps.database_version bkps.backup_size bkps.database_name bkps.server_name bkps.machine_name bkps.flags bkps.unicode_locale bkps.unicode_compare_style bkps.collation_name bkps.is_copy_only l drop table #alert_notification_tmp ant.OperatorId ant.OperatorName ant.UseEmail ant.UsePager ant.UseNetSend ant.HasEmail ant.HasPager ant.HasNetSend  drop table #operator_notification_tmp ont.AlertId ont.AlertName ont.UseEmail ont.UsePager ont.UseNetSend ont.HasEmail ont.HasPager ont.HasNetSend  drop table #operator_job_notification_tmp ont.JobId ont.JobName ont.NotifyLevelEmail ont.NotifyLevelNetSend ont.NotifyLevelPage  princip.principal_id = asmbl.principal_id asmbl.name asmbl.assembly_id asmbl.create_date ISNULL(ASSEMBLYPROPERTY(asmbl.assembly_id, N'CultureInfo'), N'') asmbl.permission_set princip.name asmbl.is_visible ISNULL(ASSEMBLYPROPERTY(asmbl.name, N'PublicKey'), CONVERT(varbinary(8000), N'')) ASSEMBLYPROPERTY(asmbl.name, N'VersionMajor') ASSEMBLYPROPERTY(asmbl.name, N'VersionMinor') ASSEMBLYPROPERTY(asmbl.name, N'VersionBuild') ASSEMBLYPROPERTY(asmbl.name, N'VersionRevision') case when asmbl.assembly_id < 65536 then 1 else 0 end  afiles.name afiles.file_id afiles.content  (asmbl.assembly_id = atypes.assembly_id) and (atypes.is_user_defined = 1) atypes.user_type_id atypes.max_length ISNULL(atypes.collation_name,N'') atypes.precision atypes.scale atypes.is_nullable asmbl.name ISNULL(atypes.assembly_class,N'') atypes.is_binary_ordered atypes.is_fixed_length 0 0x0 0  obj.type=N'AF' am.object_id = obj.object_id asmbl.assembly_id = am.assembly_id ret_param.object_id = obj.object_id and ret_param.is_output = 1 asmbl.name am.assembly_class  par.is_output = 0 par.name par.parameter_id par.is_readonly  DECLARE @FullTextDefaultPath NVARCHAR(512) EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer', N'FullTextDefaultPath', @FullTextDefaultPath OUTPUT DECLARE @FullTextDefaultPath NVARCHAR(512) EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'FullTextDefaultPath', @FullTextDefaultPath OUTPUT @@SERVERNAME serverproperty(N'Servername') ISNULL(FULLTEXTSERVICEPROPERTY('ResourceUsage'), 0) ISNULL(@FullTextDefaultPath, N'') ISNULL(FULLTEXTSERVICEPROPERTY('ConnectTimeout'),0) * 10000000 ISNULL(FULLTEXTSERVICEPROPERTY('DataTimeout'),0) * 10000000 0 CASE WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 0 THEN 1 WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 1 THEN 0 ELSE 0 END FULLTEXTSERVICEPROPERTY('LoadOSResources') FULLTEXTSERVICEPROPERTY('UpgradeOption')  cat.data_space_id = fg.data_space_id cat.principal_id=dp.principal_id ci.ftcatid = cat.ftcatid create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int) if( 1 = DATABASEPROPERTYEX(db_name(), 'IsFulltextEnabled') ) begin insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs end create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int) if( 1 = DATABASEPROPERTY(db_name(), 'IsFulltextEnabled') ) begin insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs end drop table #tmpcatinfo cat.name FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount') FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount') cat.fulltext_catalog_id FULLTEXTCATALOGPROPERTY(cat.name,'AccentSensitivity') cat.is_default ISNULL(fg.name, N'') dp.name cat.ftcatid FULLTEXTCATALOGPROPERTY(cat.name,'LogSize') FULLTEXTCATALOGPROPERTY(cat.name,'IndexSize') FULLTEXTCATALOGPROPERTY(cat.name,'ItemCount') FULLTEXTCATALOGPROPERTY(cat.name,'PopulateStatus') 0 cast(null as datetime) ISNULL(ci.path,N'') ci.number_fulltext_tables ISNULL(cat.path,N'') (select (case when exists(select distinct object_id from sys.fulltext_indexes fti where cat.fulltext_catalog_id = fti.fulltext_catalog_id and OBJECTPROPERTY(object_id, 'IsTable')=1) then 1 else 0 end))  sl.principal_id=dp.principal_id sl.name dp.name sl.stoplist_id  dp1.principal_id = s.principal_id s.name s.schema_id dp1.name case when s.name in ('dbo','guest','INFORMATION_SCHEMA','sys','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader', 'db_denydatawriter') then 1 else 0 end s cat.fulltext_catalog_id = fti.fulltext_catalog_id si.index_id=fti.unique_index_id and si.object_id=fti.object_id sl.stoplist_id = fti.stoplist_id fg.data_space_id = fti.data_space_id cat.name fti.is_enabled OBJECTPROPERTY(fti.object_id,'TableFullTextPopulateStatus') (case change_tracking_state when 'M' then 1 when 'A' then 2 else 0 end) OBJECTPROPERTY(fti.object_id,'TableFullTextItemCount') OBJECTPROPERTY(fti.object_id,'TableFullTextDocsProcessed') OBJECTPROPERTY(fti.object_id,'TableFullTextPendingChanges') OBJECTPROPERTY(fti.object_id,'TableFullTextFailCount') (case when fti.stoplist_id is NULL then 0 when fti.stoplist_id = 0 then 1 else 2 end) ISNULL(sl.name,N'') fg.name si.name  COLUMNPROPERTY(cols.id, cols.name, 'IsFulltextIndexed') <> 0 sl.lcid=cols.language col.object_id = icol.object_id and col.column_id = icol.column_id sl.lcid=icol.language_id col2.column_id = icol.type_column_id and col2.object_id = icol.object_id cols.name ISNULL((select scol2.name from sysdepends as sdep, syscolumns as scol2 where cols.colid = sdep.number and cols.id = sdep.id and cols.id = scol2.id and sdep.depnumber = scol2.colid),N'') ISNULL((select scol2.name from sysdepends as sdep, syscolumns as scol2 where cols.colid = sdep.number and cols.id = sdep.id and sdep.deptype = 1 and cols.id = scol2.id and sdep.depnumber = scol2.colid),N'') sl.alias col.name sl.name ISNULL(col2.name,N'') <-- parameters: -- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL) -- contains source objects -- 2. @find_referencing_objects defines ordering -- 1 order for drop -- 0 order for script declare @must_set_nocount_off bit set @must_set_nocount_off = 0 IF @@OPTIONS & 512 = 0 set @must_set_nocount_off = 1 set nocount on declare @u int declare @udf int declare @v int declare @sp int declare @def int declare @rule int declare @tr int declare @uda int declare @uddt int declare @xml int declare @udt int declare @assm int declare @part_sch int declare @part_func int declare @synonym int declare @udtt int declare @ddltr int declare @unknown int declare @pg int set @u = 3 set @udf = 0 set @v = 2 set @sp = 4 set @def = 6 set @rule = 7 set @tr = 8 set @uda = 11 set @synonym = 12 --above 100 -> not in sys.objects set @uddt = 101 set @xml = 102 set @udt = 103 set @assm = 1000 set @part_sch = 201 set @part_func = 202 set @udtt = 104 set @ddltr = 203 set @unknown = 1001 set @pg = 204 -- variables for referenced type obtained from sys.sql_expression_dependencies declare @obj int set @obj = 20 declare @type int set @type = 21 -- variables for xml and part_func are already there create table #t1 ( object_id int NULL, object_name sysname collate database_default NULL, object_schema sysname collate database_default NULL, object_db sysname NULL, object_svr sysname NULL, object_type smallint NOT NULL, relative_id int NOT NULL, relative_name sysname collate database_default NOT NULL, relative_schema sysname collate database_default NULL, relative_db sysname NULL, relative_svr sysname NULL, relative_type smallint NOT NULL, schema_bound bit NOT NULL, rank smallint NULL, degree int NULL ) -- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1 create table #t2 ( object_id int NULL, object_name sysname collate database_default NULL, object_schema sysname collate database_default NULL, object_db sysname NULL, object_svr sysname NULL, object_type smallint NOT NULL, relative_id int NOT NULL, relative_name sysname collate database_default NOT NULL, relative_schema sysname collate database_default NULL, relative_db sysname NULL, relative_svr sysname NULL, relative_type smallint NOT NULL, schema_bound bit NOT NULL, rank smallint NULL ) -- This index will ensure that we have unique parent-child relationship create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with IGNORE_DUP_KEY declare @iter_no int set @iter_no = 1 declare @rows int set @rows = 1 insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l -- change the object_id of table types to their user_defined_id update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt while @rows > 0 begin set @rows = 0 if (1 = @find_referencing_objects) begin -- HARD DEPENDENCIES -- these dependencies have to be in the same database only -- tables that reference uddts or udts insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.user_type_id = t.object_id join sys.tables as tbl on tbl.object_id = c.object_id where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- udtts that reference uddts or udts insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.user_type_id = t.object_id join sys.table_types as tt on tt.type_table_object_id = c.object_id where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- tables/views that reference triggers insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR' where @iter_no = t.rank and (t.object_type = @u OR t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- tables that reference defaults (only default objects) insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.default_object_id = t.object_id join sys.objects as o on o.object_id = clmns.object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- types that reference defaults (only default objects) insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.types as tp on tp.default_object_id = t.object_id join sys.objects as o on o.object_id = t.object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- tables that reference rules insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.rule_object_id = t.object_id join sys.tables as tbl on tbl.object_id = clmns.object_id where @iter_no = t.rank and t.relative_type = @rule and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- types that reference rules insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.types as tp on tp.rule_object_id = t.object_id where @iter_no = t.rank and t.object_type = @rule and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- tables that reference XmlSchemaCollections insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.xml_collection_id = t.object_id join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table types that reference XmlSchemaCollections insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.xml_collection_id = t.object_id join sys.table_types as tt on tt.type_table_object_id = c.object_id where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- procedures that reference XmlSchemaCollections insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type in ( 'P', 'RF', 'PC') then @sp else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.parameters as c on c.xml_collection_id = t.object_id join sys.objects as o on o.object_id = c.object_id where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- udf, sp, uda, trigger all that reference assembly insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_modules as am on ((am.assembly_id = t.object_id) and (am.assembly_id >= 65536)) join sys.objects as o on am.object_id = o.object_id where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- udt that reference assembly insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select at.user_type_id, at.name, SCHEMA_NAME(at.schema_id), t.object_db, @udt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_types as at on ((at.assembly_id = t.object_id) and (at.is_user_defined = 1)) where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- assembly that reference assembly insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_references as ar on ((ar.referenced_assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536)) join sys.assemblies as asm on asm.assembly_id = ar.assembly_id where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table references table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id join sys.tables as tbl on tbl.object_id = fk.parent_object_id where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- uda references types insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.parameters as p on p.user_type_id = t.object_id join sys.objects as o on o.object_id = p.object_id and o.type = 'AF' where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name()) -- table,view references partition scheme insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'V' then @v else @u end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.indexes as idx on idx.data_space_id = t.object_id join sys.objects as o on o.object_id = idx.object_id where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- partition scheme references partition function insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.partition_schemes as ps on ps.function_id = t.object_id where @iter_no = t.rank and t.object_type = @part_func and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- plan guide references sp, udf, triggers insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select pg.plan_guide_id, pg.name, t.object_db, @pg, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.plan_guides as pg on pg.scope_object_id = t.object_id where @iter_no = t.rank and t.object_type in (@sp, @udf, @tr) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- synonym refrences object insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1 from #t1 as t join sys.synonyms as s on object_id(s.base_object_name) = t.object_id where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- SOFT DEPENDENCIES DECLARE name_cursor CURSOR FOR SELECT DISTINCT t.object_id, t.object_name, t.object_schema, t.object_type FROM #t1 as t WHERE @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) and t.object_type NOT IN (@part_sch, @assm, @tr, @ddltr) OPEN name_cursor DECLARE @objid int DECLARE @objname sysname DECLARE @objschema sysname DECLARE @objtype smallint DECLARE @fullname sysname DECLARE @objecttype sysname FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype WHILE (@@FETCH_STATUS <> -1) BEGIN SET @fullname = case when @objschema IS NULL then quotename(@objname) else quotename(@objschema) + '.' + quotename(@objname) end SET @objecttype = case when @objtype in (@uddt, @udt, @udtt) then 'TYPE' when @objtype = @xml then 'XML_SCHEMA_COLLECTION' when @objtype = @part_func then 'PARTITION_FUNCTION' else 'OBJECT' end insert #t2 (object_type, object_id, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referencing_class when 1 then (select case when obj.type = 'U' then @u when obj.type = 'V' then @v when obj.type = 'TR' then @tr when obj.type in ('P', 'RF', 'PC') then @sp when obj.type in ('AF') then @uda when obj.type in ('TF', 'FN', 'IF', 'FS', 'FT') then @udf when obj.type = 'D' then @def when obj.type = 'SN' then @synonym else @obj end from sys.objects as obj where obj.object_id = dep.referencing_id) when 6 then (select case when (tp.is_assembly_type = 1) then @udt when (tp.is_table_type = 1) then @udtt else @uddt end from sys.types as tp where tp.user_type_id = dep.referencing_id) when 10 then @xml when 12 then @ddltr when 21 then @part_func end, dep.referencing_id, dep.referencing_entity_name, dep.referencing_schema_name, db_name(), null, @objid, @objname, @objschema, db_name(), @objtype, 0, @iter_no + 1 from sys.dm_sql_referencing_entities(@fullname, @objecttype) dep FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype END CLOSE name_cursor DEALLOCATE name_cursor update #t2 set object_id = obj.object_id, object_name = obj.name, object_schema = schema_name(obj.schema_id), object_type = @u from sys.objects as o join sys.objects as obj on obj.object_id = o.parent_object_id where o.object_id = #t2.object_id and (#t2.object_type = @obj OR o.parent_object_id != 0) and #t2.rank = @iter_no + 1 insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank) select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank from #t2 where @iter_no + 1 = rank and #t2.object_id != #t2.relative_id set @rows = @rows + @@rowcount end else begin -- SOFT DEPENDENCIES -- insert all values from sys.sql_expression_dependencies for the corresponding object -- first insert them in #t2, update them and then finally insert them in #t1 insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() -- insert all the dependency values in case of a table that references a check insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C' join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u -- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.objects as o on o.parent_object_id = t.object_id join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() -- queries for objects with object_id null and object_svr null - resolve them -- we will build the query to resolve the objects -- increase @rows as we bind the objects DECLARE db_cursor CURSOR FOR select distinct ISNULL(object_db, db_name()) from #t2 as t where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL OPEN db_cursor DECLARE @dbname sysname FETCH NEXT FROM db_cursor INTO @dbname WHILE (@@FETCH_STATUS <> -1) BEGIN IF (db_id(@dbname) IS NULL) BEGIN FETCH NEXT FROM db_cursor INTO @dbname CONTINUE END DECLARE @query nvarchar(MAX) -- when schema is not null -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id where obj.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id where t.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id from ' + quotename(@dbname) + '.sys.xml_schema_collections as x join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id where x.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @part_func - schema is always null -- @schema is null -- consider schema as 'dbo' -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj where obj.name = #t2.object_name collate database_default and SCHEMA_NAME(obj.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t where t.name = #t2.object_name collate database_default and SCHEMA_NAME(t.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id) from ' + quotename(@dbname) + '.sys.xml_schema_collections as x where x.name = #t2.object_name collate database_default and SCHEMA_NAME(x.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- consider schema as t.relative_schema -- the parent object will have the default schema of user in case of dynamic schema binding -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id where obj.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id where t.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id) from ' + quotename(@dbname) + '.sys.xml_schema_collections as x join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id where x.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @part_func always have schema as null SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = p.function_id from ' + quotename(@dbname) + '.sys.partition_functions as p where p.name = #t2.object_name collate database_default and #t2.object_type = ' + CAST(@part_func AS nvarchar(8)) + ' and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- update the shared object if any (schema is not null) update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp from master.sys.objects as o join master.sys.schemas as sch on sch.schema_id = o.schema_id where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and #t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null -- update the shared object if any (schema is null) update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp from master.sys.objects as o where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default and o.type in ('P', 'RF', 'PC') and #t2.object_schema IS null and #t2.object_id IS null and #t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor update #t2 set object_type = @unknown where object_id IS NULL insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank) select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank from #t2 where @iter_no + 1 = rank SET @rows = @rows + @@rowcount -- HARD DEPENDENCIES -- uddt or udt referenced by table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as col on col.object_id = t.object_id join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4 where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- uddt or udt referenced by table type insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.table_types as tt on tt.user_type_id = t.object_id join sys.columns as col on col.object_id = tt.type_table_object_id join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4 where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table or view referenced by trigger insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.triggers as tr on tr.object_id = t.object_id join sys.objects as o on o.object_id = tr.parent_id where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- defaults (only default objects) referenced by tables insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.object_id = t.object_id join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- defaults (only default objects) referenced by types insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.types as tp on tp.user_type_id = t.object_id join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.object_type = @uddt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- rules referenced by tables insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.object_id = t.object_id join sys.objects as o on o.object_id = clmns.rule_object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.relative_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- rules referenced by types insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.types as tp on tp.user_type_id = t.object_id join sys.objects as o on o.object_id = tp.rule_object_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.relative_type = @uddt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- XmlSchemaCollections referenced by tables insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.object_id = t.object_id join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4 where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- XmlSchemaCollections referenced by tabletypes insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.table_types as tt on tt.user_type_id = t.object_id join sys.columns as c on c.object_id = tt.type_table_object_id join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4 where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- XmlSchemaCollections referenced by procedures insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.parameters as c on c.object_id = t.object_id join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4 where @iter_no = t.rank and t.object_type in (@sp, @udf) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table referenced by table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.parent_object_id = t.object_id join sys.tables as tbl on tbl.object_id = fk.referenced_object_id where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- uddts referenced by uda insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case when tp.is_table_type = 1 then @udtt when tp.is_assembly_type = 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.parameters as p on p.object_id = t.object_id join sys.types as tp on tp.user_type_id = p.user_type_id where @iter_no = t.rank and t.object_type = @uda and t.object_type = @uda and tp.user_type_id>256 set @rows = @rows + @@rowcount -- assembly referenced by assembly insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_references as ar on ((ar.assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536)) join sys.assemblies as asm on asm.assembly_id = ar.referenced_assembly_id where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- assembly referenced by udt insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_types as at on ((at.user_type_id = t.object_id) and (at.is_user_defined = 1)) join sys.assemblies as asm on asm.assembly_id = at.assembly_id where @iter_no = t.rank and t.object_type = @udt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- assembly referenced by udf, sp, uda, trigger insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.assembly_modules as am on ((am.object_id = t.object_id) and (am.assembly_id >= 65536)) join sys.assemblies as asm on asm.assembly_id = am.assembly_id where @iter_no = t.rank and t.object_type in ( @udf, @sp, @uda, @tr) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- Partition Schemes referenced by tables/views insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.indexes as idx on idx.object_id = t.object_id join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id where @iter_no = t.rank and t.object_type in (@u, @v) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- Partition Function referenced by Partition Schemes insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select pf.function_id, pf.name, t.object_db, @part_func, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.partition_schemes as ps on ps.data_space_id = t.object_id join sys.partition_functions as pf on pf.function_id = ps.function_id where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- sp, udf, triggers referenced by plan guide insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.plan_guides as pg on pg.plan_guide_id = t.object_id join sys.objects as o on o.object_id = pg.scope_object_id where @iter_no = t.rank and t.object_type = @pg and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- objects referenced by synonym insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1 from #t1 as t join sys.synonyms as s on s.object_id = t.object_id join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT') where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount end set @iter_no = @iter_no + 1 end update #t1 set rank = 0 -- computing the degree of the nodes update #t1 set degree = ( select count(*) from #t1 t where t.relative_id = #t1.object_id and t.object_id != t.relative_id) -- perform the topological sorting set @iter_no = 1 while 1 = 1 begin update #t1 set rank=@iter_no where degree = 0 -- end the loop if no more rows left to process if (@@rowcount = 0) break update #t1 set degree = NULL where rank = @iter_no update #t1 set degree = ( select count(*) from #t1 t where t.relative_id = #t1.object_id and t.object_id != t.relative_id and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0)) where degree is not null set @iter_no = @iter_no + 1 end --correcting naming mistakes of objects present in current database --This part need to be removed once SMO's URN comparision gets fixed DECLARE @collation sysname; DECLARE db_cursor CURSOR FOR select distinct ISNULL(object_db, db_name()) from #t1 as t where t.object_id IS NOT NULL and t.object_svr IS NULL OPEN db_cursor FETCH NEXT FROM db_cursor INTO @dbname WHILE (@@FETCH_STATUS <> -1) BEGIN IF (db_id(@dbname) IS NULL) BEGIN FETCH NEXT FROM db_cursor INTO @dbname CONTINUE END SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation'))); SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1 inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id where o.name = #t1.object_name collate '+ @collation +' and sch.name = #t1.object_schema collate '+ @collation EXEC (@query) FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor --final select select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema] from #t1 as t left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id) left join sys.objects as p on p.object_id = o.parent_object_id order by rank desc drop table #t1 drop table #t2 drop table #tempdep IF @must_set_nocount_off > 0 set nocount off Ix-- parameters: -- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL) -- contains source objects -- 2. @find_referencing_objects defines ordering -- 1 order for drop -- 0 order for script declare @must_set_nocount_off bit set @must_set_nocount_off = 0 IF @@OPTIONS & 512 = 0 set @must_set_nocount_off = 1 set nocount on declare @u int declare @udf int declare @v int declare @sp int declare @def int declare @rule int declare @tr int declare @uda int declare @uddt int declare @xml int declare @udt int declare @assm int declare @part_sch int declare @part_func int declare @synonym int declare @udtt int declare @ddltr int declare @unknown int declare @pg int set @u = 3 set @udf = 0 set @v = 2 set @sp = 4 set @def = 6 set @rule = 7 set @tr = 8 set @uda = 11 set @synonym = 12 --above 100 -> not in sys.objects set @uddt = 101 set @xml = 102 set @udt = 103 set @assm = 1000 set @part_sch = 201 set @part_func = 202 set @udtt = 104 set @ddltr = 203 set @unknown = 1001 set @pg = 204 -- variables for referenced type obtained from sys.sql_expression_dependencies declare @obj int set @obj = 20 declare @type int set @type = 21 -- variables for xml and part_func are already there create table #t1 ( object_id int NULL, object_name sysname collate database_default NULL, object_schema sysname collate database_default NULL, object_db sysname NULL, object_svr sysname NULL, object_type smallint NOT NULL, relative_id int NOT NULL, relative_name sysname collate database_default NOT NULL, relative_schema sysname collate database_default NULL, relative_db sysname NULL, relative_svr sysname NULL, relative_type smallint NOT NULL, schema_bound bit NOT NULL, rank smallint NULL, degree int NULL ) -- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1 create table #t2 ( object_id int NULL, object_name sysname collate database_default NULL, object_schema sysname collate database_default NULL, object_db sysname NULL, object_svr sysname NULL, object_type smallint NOT NULL, relative_id int NOT NULL, relative_name sysname collate database_default NOT NULL, relative_schema sysname collate database_default NULL, relative_db sysname NULL, relative_svr sysname NULL, relative_type smallint NOT NULL, schema_bound bit NOT NULL, rank smallint NULL ) -- This index will ensure that we have unique parent-child relationship create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with (IGNORE_DUP_KEY=ON) declare @iter_no int set @iter_no = 1 declare @rows int set @rows = 1 insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l -- change the object_id of table types to their user_defined_id update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt while @rows > 0 begin set @rows = 0 if (1 = @find_referencing_objects) begin -- HARD DEPENDENCIES -- these dependencies have to be in the same database only -- tables that reference uddts or udts insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.user_type_id = t.object_id join sys.tables as tbl on tbl.object_id = c.object_id where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- udtts that reference uddts or udts insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as c on c.user_type_id = t.object_id join sys.table_types as tt on tt.type_table_object_id = c.object_id where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- tables/views that reference triggers insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR' where @iter_no = t.rank and (t.object_type = @u OR t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table references table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id join sys.tables as tbl on tbl.object_id = fk.parent_object_id where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- uda references types insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.parameters as p on p.user_type_id = t.object_id join sys.objects as o on o.object_id = p.object_id and o.type = 'AF' where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name()) -- synonym refrences object insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1 from #t1 as t join sys.synonyms as s on object_id(s.base_object_name) = t.object_id where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- DatabaseDdlTrigger insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select obj.object_id ,obj.name ,null,null,@ddltr,t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, 1,@iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as dp on (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 )) join sys.triggers as obj on obj.object_id = dp.referencing_id and obj.parent_class = 0 where @iter_no = t.rank set @rows = @rows + @@rowcount --view, procedure references table, view, procedure --procedure references type --table(check) references procedure --trigger references table, procedure insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case when obj.type in ('C' , 'D') then obj.parent_object_id else obj.object_id end,case when obj.type in ('C','D' ) then OBJECT_NAME(obj.parent_object_id) else OBJECT_NAME(obj.object_id) end,schema_name(obj.schema_id),t.object_db, case when obj.type in ('U', 'C','D') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr when obj.type in ( 'P', 'RF', 'PC' ) then @sp when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf end, t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, dp.is_schema_bound_reference,@iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as dp on (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 )) join sys.objects as obj on obj.object_id = dp.referencing_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C' , 'D') where @iter_no = t.rank set @rows = @rows + @@rowcount end else begin -- SOFT DEPENDENCIES -- insert all values from sys.sql_expression_dependencies for the corresponding object -- first insert them in #t2, update them and then finally insert them in #t1 insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() -- insert all the dependency values in case of a table that references a check insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C' join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u -- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select case dep.referenced_class when 1 then @obj when 6 then @type when 10 then @xml when 21 then @part_func end, dep.referenced_entity_name, dep.referenced_schema_name, dep.referenced_database_name, dep.referenced_server_name, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, dep.is_schema_bound_reference, @iter_no + 1 from #t1 as t join sys.objects as o on o.parent_object_id = t.object_id join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() -- queries for objects with object_id null and object_svr null - resolve them -- we will build the query to resolve the objects -- increase @rows as we bind the objects DECLARE db_cursor CURSOR FOR select distinct ISNULL(object_db, db_name()) from #t2 as t where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL OPEN db_cursor DECLARE @dbname sysname FETCH NEXT FROM db_cursor INTO @dbname WHILE (@@FETCH_STATUS <> -1) BEGIN IF (db_id(@dbname) IS NULL) BEGIN FETCH NEXT FROM db_cursor INTO @dbname CONTINUE END DECLARE @query nvarchar(MAX) -- when schema is not null -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id where obj.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id where t.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id from ' + quotename(@dbname) + '.sys.xml_schema_collections as x join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id where x.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @part_func - schema is always null -- @schema is null -- consider schema as 'dbo' -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj where obj.name = #t2.object_name collate database_default and SCHEMA_NAME(obj.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t where t.name = #t2.object_name collate database_default and SCHEMA_NAME(t.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id) from ' + quotename(@dbname) + '.sys.xml_schema_collections as x where x.name = #t2.object_name collate database_default and SCHEMA_NAME(x.schema_id) = ''dbo'' and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- consider schema as t.relative_schema -- the parent object will have the default schema of user in case of dynamic schema binding -- @obj SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) + ' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) + ' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) + ' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) + ' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) + ' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) + ' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) + ' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) + ' else ' + CAST(@unknown AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.objects as obj join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id where obj.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @type SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end from ' + quotename(@dbname) + '.sys.types as t join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id where t.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- @xml SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id) from ' + quotename(@dbname) + '.sys.xml_schema_collections as x join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id where x.name = #t2.object_name collate database_default and sch.name = #t2.relative_schema collate database_default and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''') and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL' EXEC (@query) -- update the shared object if any (schema is not null) update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp from sys.objects as o join sys.schemas as sch on sch.schema_id = o.schema_id where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and #t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null -- update the shared object if any (schema is null) update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp from sys.objects as o where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default and o.type in ('P', 'RF', 'PC') and #t2.object_schema IS null and #t2.object_id IS null and #t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor update #t2 set object_type = @unknown where object_id IS NULL insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank) select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank from #t2 where @iter_no + 1 = rank SET @rows = @rows + @@rowcount -- HARD DEPENDENCIES -- uddt or udt referenced by table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.columns as col on col.object_id = t.object_id join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4 where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- uddt or udt referenced by table type insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.table_types as tt on tt.user_type_id = t.object_id join sys.columns as col on col.object_id = tt.type_table_object_id join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4 where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table or view referenced by trigger insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.triggers as tr on tr.object_id = t.object_id join sys.objects as o on o.object_id = tr.parent_id where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- table referenced by table insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.parent_object_id = t.object_id join sys.tables as tbl on tbl.object_id = fk.referenced_object_id where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount -- objects referenced by synonym insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1 from #t1 as t join sys.synonyms as s on s.object_id = t.object_id join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT') where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name()) set @rows = @rows + @@rowcount end set @iter_no = @iter_no + 1 end update #t1 set rank = 0 -- computing the degree of the nodes update #t1 set degree = ( select count(*) from #t1 t where t.relative_id = #t1.object_id and t.object_id != t.relative_id) -- perform the topological sorting set @iter_no = 1 while 1 = 1 begin update #t1 set rank=@iter_no where degree = 0 -- end the loop if no more rows left to process if (@@rowcount = 0) break update #t1 set degree = NULL where rank = @iter_no update #t1 set degree = ( select count(*) from #t1 t where t.relative_id = #t1.object_id and t.object_id != t.relative_id and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0)) where degree is not null set @iter_no = @iter_no + 1 end --correcting naming mistakes of objects present in current database --This part need to be removed once SMO's URN comparision gets fixed DECLARE @collation sysname; DECLARE db_cursor CURSOR FOR select distinct ISNULL(object_db, db_name()) from #t1 as t where t.object_id IS NOT NULL and t.object_svr IS NULL OPEN db_cursor FETCH NEXT FROM db_cursor INTO @dbname WHILE (@@FETCH_STATUS <> -1) BEGIN IF (db_id(@dbname) IS NULL) BEGIN FETCH NEXT FROM db_cursor INTO @dbname CONTINUE END ---SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation'))); SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1 inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id where o.name = #t1.object_name collate '+ @collation +' and sch.name = #t1.object_schema collate '+ @collation EXEC (@query) FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor --final select select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema] from #t1 as t left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id) left join sys.objects as p on p.object_id = o.parent_object_id order by rank desc drop table #t1 drop table #t2 drop table #tempdep IF @must_set_nocount_off > 0 set nocount off n-- parameters: -- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL) -- contains source objects -- 2. @find_referencing_objects defines ordering -- 1 order for drop -- 0 order for script declare @must_set_nocount_off bit set @must_set_nocount_off = 0 IF @@OPTIONS & 512 = 0 set @must_set_nocount_off = 1 set nocount on declare @u int declare @udf int declare @v int declare @sp int declare @def int declare @rule int declare @tr int declare @uda int declare @uddt int declare @xml int declare @udt int declare @assm int declare @part_sch int declare @part_func int declare @synonym int declare @pg int set @u = 3 set @udf = 0 set @v = 2 set @sp = 4 set @def = 6 set @rule = 7 set @tr = 8 set @uda = 11 set @synonym = 12 --above 100 -> not in sys.objects set @uddt = 101 set @xml = 102 set @udt = 103 set @assm = 1000 set @part_sch = 201 set @part_func = 202 set @pg = 204 /* * Create #t1 as temp object holding areas. Columns are: * object_id - temp object id * object_type - temp object type * relative_id - parent or child object id * relative_type - parent or child object type * rank - NULL means dependencies not yet evaluated, else nonNULL. * soft_link - this row should not be used to compute ordering among objects * object_name - name of the temp object * object_schema - name the temp object's schema (if any) * relative_name - name of the relative object * relative_schema - name of the relative object's schema (if any) * degree - the number of relatives that the object has, will be used for computing the rank * object_key - surrogate key that combines object_id and object_type * relative_key - surrogate key that combines relative_id and relative_type */ create table #t1( object_id int NULL, object_type smallint NULL, relative_id int NULL, relative_type smallint NULL, rank smallint NULL, soft_link bit NULL, object_name sysname NULL, object_schema sysname NULL, relative_name sysname NULL, relative_schema sysname NULL, degree int NULL, object_key bigint NULL, relative_key bigint NULL ) create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY declare @iter_no int set @iter_no = 1 declare @rows int set @rows = 1 declare @rowcount_ck int set @rowcount_ck = 0 insert #t1 (relative_id, relative_type, rank) select l.objid, l.objtype, @iter_no from #tempdep l while @rows > 0 begin set @rows = 0 if( 1 = @find_referencing_objects ) begin --tables that reference uddts or udts (parameters that reference types are in sql_dependencies ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1 from #t1 as t join sys.columns as c on c.user_type_id = t.relative_id join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views where @iter_no = t.rank and (t.relative_type=@uddt OR t.relative_type=@udt) set @rows = @rows + @@rowcount --tables that reference defaults ( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.default_object_id = t.relative_id join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.relative_type = @def set @rows = @rows + @@rowcount --types that reference defaults ( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1 from #t1 as t join sys.types as tp on tp.default_object_id = t.relative_id join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0) where @iter_no = t.rank and t.relative_type = @def set @rows = @rows + @@rowcount --tables that reference rules insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.rule_object_id = t.relative_id where @iter_no = t.rank and t.relative_type = @rule set @rows = @rows + @@rowcount --types that reference rules insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1 from #t1 as t join sys.types as tp on tp.rule_object_id = t.relative_id where @iter_no = t.rank and t.relative_type = @rule set @rows = @rows + @@rowcount --tables that reference XmlSchemaCollections insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1 from #t1 as t join sys.columns as c on c.xml_collection_id = t.relative_id join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views where @iter_no = t.rank and t.relative_type = @xml set @rows = @rows + @@rowcount --procedures that reference XmlSchemaCollections insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.object_id, case when o.type in ( 'P', 'RF', 'PC' ) then @sp else @udf end, @iter_no + 1 from #t1 as t join sys.parameters as c on c.xml_collection_id = t.relative_id join sys.objects as o on o.object_id = c.object_id where @iter_no = t.rank and t.relative_type = @xml set @rows = @rows + @@rowcount --udf, sp, uda, trigger all that reference assembly insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, am.object_id, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), @iter_no + 1 from #t1 as t join sys.assembly_modules as am on am.assembly_id = t.relative_id join sys.objects as o on am.object_id = o.object_id where @iter_no = t.rank and t.relative_type = @assm set @rows = @rows + @@rowcount -- CLR udf, sp, uda that reference udt insert #t1 (object_id, object_type, relative_id, relative_type, rank) select distinct t.relative_id, t.relative_type, am.object_id, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), @iter_no + 1 from #t1 as t join sys.parameters as sp on sp.user_type_id = t.relative_id join sys.assembly_modules as am on sp.object_id = am.object_id join sys.objects as o on sp.object_id = o.object_id where @iter_no = t.rank and t.relative_type = @udt set @rows = @rows + @@rowcount --udt that reference assembly insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, at.user_type_id, @udt, @iter_no + 1 from #t1 as t join sys.assembly_types as at on at.assembly_id = t.relative_id where @iter_no = t.rank and t.relative_type = @assm set @rows = @rows + @@rowcount --assembly that reference assembly insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, ar.assembly_id, @assm, @iter_no + 1 from #t1 as t join sys.assembly_references as ar on ar.referenced_assembly_id = t.relative_id where @iter_no = t.rank and t.relative_type = @assm set @rows = @rows + @@rowcount --table references table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, fk.parent_object_id, @u, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.referenced_object_id = t.relative_id where @iter_no = t.rank and t.relative_type = @u set @rows = @rows + @@rowcount --table,view references partition scheme insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, idx.object_id, case o.type when 'V' then @v else @u end, @iter_no + 1 from #t1 as t join sys.indexes as idx on idx.data_space_id = t.relative_id join sys.objects as o on o.object_id = idx.object_id where @iter_no = t.rank and t.relative_type = @part_sch set @rows = @rows + @@rowcount --partition scheme references partition function insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1 from #t1 as t join sys.partition_schemes as ps on ps.function_id = t.relative_id where @iter_no = t.rank and t.relative_type = @part_func set @rows = @rows + @@rowcount --non-schema-bound parameter references type insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, p.object_id, case when obj.type in ( 'P', 'PC' ) then @sp else @udf end, @iter_no + 1 from #t1 as t join sys.parameters as p on p.user_type_id = t.relative_id and t.relative_type in (@uddt, @udt) join sys.objects as obj on obj.object_id = p.object_id and obj.type in ( 'P', 'PC', 'TF', 'FN', 'IF', 'FS', 'FT') and ISNULL(objectproperty(obj.object_id, 'isschemabound'), 0) = 0 where @iter_no = t.rank set @rows = @rows + @@rowcount -- plan guide references sp, udf, triggers insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, pg.plan_guide_id, @pg, @iter_no + 1 from #t1 as t join sys.plan_guides as pg on pg.scope_object_id = t.relative_id where @iter_no = t.rank and t.relative_type in (@sp, @udf, @tr) set @rows = @rows + @@rowcount --view, procedure references table, view, procedure --procedure references type --table(check) references procedure --trigger references table, procedure insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, case when 'C' = obj.type then obj.parent_object_id else dp.object_id end, case when obj.type in ('U', 'C') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr when obj.type in ( 'P', 'RF', 'PC' ) then @sp when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf end, @iter_no + 1 from #t1 as t join sys.sql_dependencies as dp on -- reference table, view procedure ( class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf) ) --reference type or ( 2 = class and dp.referenced_major_id = t.relative_id and t.relative_type in (@uddt, @udt)) --reference xml namespace ( not supported by server right now ) --or ( 3 = class and dp.referenced_major_id = t.relative_id and @xml = t.relative_type ) join sys.objects as obj on obj.object_id = dp.object_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C') where @iter_no = t.rank set @rows = @rows + @@rowcount end -- 1 = @find_referencing_objects else begin -- find referenced objects --check references table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, dp.object_id, 77 /*place holder for check*/, @iter_no from #t1 as t join sys.sql_dependencies as dp on -- reference table class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type = @u join sys.objects as obj on obj.object_id = dp.object_id and obj.type = 'C' where @iter_no = t.rank set @rowcount_ck = @@rowcount --non-schema-bound parameter references type insert #t1 (object_id, object_type, relative_id, relative_type, rank) select distinct t.relative_id, -- object_id t.relative_type, -- object_type p.user_type_id, -- relative_id case p.system_type_id when 240 then @udt else @uddt end, @iter_no + 1 from #t1 as t join sys.parameters as p on p.object_id = t.relative_id and p.user_type_id > 256 and t.relative_type in ( @sp, @udf ,@uda ) and ISNULL(objectproperty(p.object_id, 'isschemabound'), 0) = 0 where @iter_no = t.rank set @rows = @rows + @@rowcount --view, procedure referenced by table, view, procedure --type referenced by procedure --check referenced by table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select distinct case when 77 = t.relative_type then obj2.parent_object_id else t.relative_id end, -- object_id case when 77 = t.relative_type then @u else relative_type end, -- object_type dp.referenced_major_id, -- relative_id case -- relative_type when dp.class < 2 then case when 'U' = obj.type then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr when 'AF' = obj.type then @uda when obj.type in ( 'P', 'RF', 'PC' ) then @sp when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf when exists (select * from sys.synonyms syn where syn.object_id = dp.referenced_major_id ) then @synonym end when dp.class = 2 then (case when exists (select * from sys.assembly_types sat where sat.user_type_id = dp.referenced_major_id) then @udt else @uddt end) end, @iter_no + 1 from #t1 as t join sys.sql_dependencies as dp on -- reference table, view procedure ( class < 2 and dp.object_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, @uda, 77) ) --reference type or ( 2 = class and dp.object_id = t.relative_id ) -- t.relative_type? --reference xml namespace ( not supported by server right now ) --or ( 3 = class and dp.referenced_major_id = t.relative_id and @xml = t.relative_type ) left join sys.objects as obj on obj.object_id = dp.referenced_major_id and dp.class < 2 and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'FS', 'FT', 'TR', 'AF') left join sys.objects as obj2 on obj2.object_id = t.relative_id and 77 = t.relative_type where @iter_no = t.rank set @rows = @rows + @@rowcount if @rowcount_ck > 0 begin delete from #t1 where relative_type = 77 end --table or view referenced by trigger insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tr.parent_id, case o.type when 'V' then @v else @u end, @iter_no + 1 from #t1 as t join sys.triggers as tr on tr.object_id = t.relative_id join sys.objects as o on o.object_id = tr.parent_id where @iter_no = t.rank and t.relative_type = @tr set @rows = @rows + @@rowcount --table referenced by table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, fk.referenced_object_id, @u, @iter_no + 1 from #t1 as t join sys.foreign_keys as fk on fk.parent_object_id = t.relative_id where @iter_no = t.rank and t.relative_type = @u set @rows = @rows + @@rowcount --assembly referenced by assembly insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, ar.referenced_assembly_id, @assm, @iter_no + 1 from #t1 as t join sys.assembly_references as ar on ar.assembly_id = t.relative_id where @iter_no = t.rank and t.relative_type = @assm set @rows = @rows + @@rowcount --assembly referenced by udt insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, at.assembly_id, @assm, @iter_no + 1 from #t1 as t join sys.assembly_types as at on at.user_type_id = t.relative_id where @iter_no = t.rank and t.relative_type = @udt set @rows = @rows + @@rowcount -- assembly referenced by udf, sp, uda, trigger insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, am.assembly_id, @assm, @iter_no + 1 from #t1 as t join sys.assembly_modules as am on am.object_id = t.relative_id where @iter_no = t.rank and t.relative_type in ( @udf, @sp, @uda, @tr) set @rows = @rows + @@rowcount -- udt referenced by CLR udf, sp, uda insert #t1 (object_id, object_type, relative_id, relative_type, rank) select distinct t.relative_id, t.relative_type, at.user_type_id, @udt, @iter_no + 1 from #t1 as t join sys.parameters as sp on sp.object_id = t.relative_id join sys.assembly_modules as am on am.object_id = sp.object_id join sys.assembly_types as at on sp.user_type_id = at.user_type_id where @iter_no = t.rank and t.relative_type in (@udf, @sp, @uda) set @rows = @rows + @@rowcount --clr types referenced by tables ( types referenced by parameters are in sql_dependencies ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.user_type_id, @udt, @iter_no + 1 from #t1 as t join sys.columns as c on c.object_id = t.relative_id join sys.assembly_types as tp on tp.user_type_id = c.user_type_id where @iter_no = t.rank and t.relative_type = @u set @rows = @rows + @@rowcount -- sp, udf, triggers referenced by plan guide insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, pg.scope_object_id, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), @iter_no + 1 from #t1 as t join sys.plan_guides as pg on pg.plan_guide_id = t.relative_id join sys.objects as o on o.object_id = pg.scope_object_id where @iter_no = t.rank and t.relative_type = @pg set @rows = @rows + @@rowcount end set @iter_no = @iter_no + 1 end --main loop --objects that don't need to be in the loop because they don't reference anybody if( 0 = @find_referencing_objects ) begin --alias types referenced by tables ( types referenced by parameters are in sql_dependencies ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.user_type_id, @uddt, @iter_no + 1 from #t1 as t join sys.columns as c on c.object_id = t.relative_id join sys.types as tp on tp.user_type_id = c.user_type_id and tp.is_user_defined = 1 where t.relative_type = @u and tp.is_assembly_type = 0 if @@rowcount > 0 begin set @iter_no = @iter_no + 1 end --defaults referenced by types insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.default_object_id, @def, @iter_no + 1 from #t1 as t join sys.types as tp on tp.user_type_id = t.relative_id and tp.default_object_id > 0 join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0) where t.relative_type = @uddt --defaults referenced by tables( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.default_object_id, @def, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.object_id = t.relative_id join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0) where t.relative_type = @u --rules referenced by types insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.rule_object_id, @rule, @iter_no + 1 from #t1 as t join sys.types as tp on tp.user_type_id = t.relative_id and tp.rule_object_id > 0 where t.relative_type = @uddt --rules referenced by tables insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.rule_object_id, @rule, @iter_no + 1 from #t1 as t join sys.columns as clmns on clmns.object_id = t.relative_id and clmns.rule_object_id > 0 where t.relative_type = @u --XmlSchemaCollections referenced by table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1 from #t1 as t join sys.columns as c on c.object_id = t.relative_id and c.xml_collection_id > 0 where t.relative_type = @u --XmlSchemaCollections referenced by procedures insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1 from #t1 as t join sys.parameters as c on c.object_id = t.relative_id and c.xml_collection_id > 0 where t.relative_type in ( @sp, @udf) --partition scheme referenced by table,view insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1 from #t1 as t join sys.indexes as idx on idx.object_id = t.relative_id join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id where t.relative_type in (@u, @v) --partition function referenced by partition scheme insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, ps.function_id, @part_func, @iter_no + 1 from #t1 as t join sys.partition_schemes as ps on ps.data_space_id = t.relative_id where t.relative_type = @part_sch end --cleanup circular references delete #t1 where object_id = relative_id and object_type=relative_type --allow circular dependencies by cuting one of the branches --mark as soft links dependencies between tables -- at script time we will need to take care to script fks and checks separately update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u ) --add independent objects first in the list insert #t1 ( object_id, object_type, rank) select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null ) --delete initial objects delete #t1 where object_id is null -- compute the surrogate keys to make sorting easier update #t1 set object_key = object_id + convert(bigint, 0xfFFFFFFF) * object_type update #t1 set relative_key = relative_id + convert(bigint, 0xfFFFFFFF) * relative_type create index index_key on #t1 (object_key, relative_key) update #t1 set rank = 0 -- computing the degree of the nodes update #t1 set degree = ( select count(*) from #t1 t_alias where t_alias.object_key = #t1.object_key and t_alias.relative_id is not null and t_alias.soft_link is null) -- perform topological sorting set @iter_no=1 while 1=1 begin update #t1 set rank=@iter_no where degree=0 -- end the loop if no more rows left to process if (@@rowcount=0) break update #t1 set degree=NULL where rank = @iter_no update #t1 set degree = ( select count(*) from #t1 t_alias where t_alias.object_key = #t1.object_key and t_alias.relative_key is not null and t_alias.relative_key in (select t_alias2.object_key from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and t_alias.rank=0 and t_alias.soft_link is null) where degree is not null set @iter_no=@iter_no+1 end --add name schema update #t1 set object_name = o.name, object_schema = schema_name(o.schema_id) from sys.objects AS o where o.object_id = #t1.object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule, @uda) update #t1 set relative_type = case op.type when 'V' then @v else @u end, object_name = o.name, object_schema = schema_name(o.schema_id), relative_name = op.name, relative_schema = schema_name(op.schema_id) from sys.objects AS o join sys.objects AS op on op.object_id = o.parent_object_id where o.object_id = #t1.object_id and object_type = @tr update #t1 set object_name = t.name, object_schema = schema_name(t.schema_id) from sys.types AS t where t.user_type_id = #t1.object_id and object_type in ( @uddt, @udt ) update #t1 set object_name = x.name, object_schema = schema_name(x.schema_id) from sys.xml_schema_collections AS x where x.xml_collection_id = #t1.object_id and object_type = @xml update #t1 set object_name = p.name, object_schema = null from sys.partition_schemes AS p where p.data_space_id = #t1.object_id and object_type = @part_sch update #t1 set object_name = p.name, object_schema = null from sys.partition_functions AS p where p.function_id = #t1.object_id and object_type = @part_func update #t1 set object_name = pg.name, object_schema = null from sys.plan_guides AS pg where pg.plan_guide_id = #t1.object_id and object_type = @pg update #t1 set object_name = a.name, object_schema = null from sys.assemblies AS a where a.assembly_id = #t1.object_id and object_type = @assm update #t1 set object_name = syn.name, object_schema = schema_name(syn.schema_id) from sys.synonyms AS syn where syn.object_id = #t1.object_id and object_type = @synonym -- delete objects for which we could not resolve the table name or schema -- because we may not have enough privileges delete from #t1 where object_name is null or (object_schema is null and object_type not in (@assm, @part_func, @part_sch, @pg)) --final select select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema from #t1 order by rank, relative_id drop table #t1 drop table #tempdep IF @must_set_nocount_off > 0 set nocount off 1-- parameters: -- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL) -- contains source objects -- 2. @find_referencing_objects defines ordering -- 1 order for drop -- 0 order for script declare @must_set_nocount_off bit set @must_set_nocount_off = 0 IF @@OPTIONS & 512 = 0 set @must_set_nocount_off = 1 set nocount on declare @u int declare @udf int declare @v int declare @sp int declare @def int declare @rule int declare @tr int declare @uddt int set @u = 3 set @udf = 0 set @v = 2 set @sp = 4 set @def = 6 set @rule = 7 set @tr = 8 --above 100 -> not in dbo.sysobjects set @uddt = 101 /* * Create #t1 as temp object holding areas. Columns are: * object_id - temp object id * object_type - temp object type * relative_id - parent or child object id * relative_type - parent or child object type * rank - NULL means dependencies not yet evaluated, else nonNULL. * soft_link - this row should not be used to compute ordering among objects * object_name - name of the temp object * object_schema - name the temp object's schema (if any) * relative_name - name of the relative object * relative_schema - name of the relative object's schema (if any) * degree - the number of relatives that the object has, will be used for computing the rank */ create table #t1( object_id int NULL, object_type smallint NULL, relative_id int NULL, relative_type smallint NULL, rank smallint NULL, soft_link bit NULL, object_name sysname NULL, object_schema sysname NULL, relative_name sysname NULL, relative_schema sysname NULL, degree int NULL ) create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY declare @iter_no int set @iter_no = 1 declare @rows int set @rows = 1 declare @rowcount_ck int set @rowcount_ck = 0 insert #t1 (relative_id, relative_type, rank) select l.objid, l.objtype, @iter_no from #tempdep l while @rows > 0 begin set @rows = 0 if( 1 = @find_referencing_objects ) begin --tables that reference types ( parameters that reference types are in sql_dependencies ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.id, case when o.type in ('U') then @u when o.type in ( 'P', 'RF', 'PC' ) then @sp when o.type in ( 'TF', 'FN', 'IF' ) then @udf end, @iter_no + 1 from #t1 as t join dbo.syscolumns as c on c.xusertype = t.relative_id join dbo.sysobjects as o on o.id = c.id and o.type in ( 'U', 'P', 'RF', 'PC', 'TF', 'FN', 'IF') where @iter_no = t.rank and t.relative_type=@uddt set @rows = @rows + @@rowcount --tables that reference defaults ( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1 from #t1 as t join dbo.syscolumns as clmns on clmns.cdefault = t.relative_id join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0 where @iter_no = t.rank and t.relative_type = @def set @rows = @rows + @@rowcount --types that reference defaults ( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1 from #t1 as t join dbo.systypes as tp on tp.tdefault = t.relative_id join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0 where @iter_no = t.rank and t.relative_type = @def set @rows = @rows + @@rowcount --tables that reference rules insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1 from #t1 as t join dbo.syscolumns as clmns on clmns.domain = t.relative_id where @iter_no = t.rank and t.relative_type = @rule set @rows = @rows + @@rowcount --types that reference rules insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1 from #t1 as t join dbo.systypes as tp on tp.domain = t.relative_id where @iter_no = t.rank and t.relative_type = @rule set @rows = @rows + @@rowcount --table references table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, fk.fkeyid, @u, @iter_no + 1 from #t1 as t join dbo.sysreferences as fk on fk.rkeyid = t.relative_id where @iter_no = t.rank and t.relative_type = @u set @rows = @rows + @@rowcount --view, procedure references table, view, procedure --table(check) references procedure --trigger references table, procedure insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, case when 'C' = o.type then o.parent_obj else dp.id end, case when o.type in ('U', 'C') then @u when 'V' = o.type then @v when 'TR' = o.type then @tr when o.type in ( 'P', 'RF', 'PC' ) then @sp when o.type in ( 'TF', 'FN', 'IF' ) then @udf end, @iter_no + 1 from #t1 as t join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf) join dbo.sysobjects as o on o.id = dp.id and o.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'C') where @iter_no = t.rank set @rows = @rows + @@rowcount end -- 1 = @find_referencing_objects else begin -- find referenced objects --check references table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, dp.id, 77 /*place holder for check*/, @iter_no from #t1 as t join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in (@u, @udf) join dbo.sysobjects as obj on obj.id = dp.id and obj.type = 'C' where @iter_no = t.rank set @rowcount_ck = @@rowcount --view, procedure referenced by table, view, procedure --type referenced by procedure --check referenced by table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select case when 77 = t.relative_type then obj2.parent_obj else t.relative_id end, case when 77 = t.relative_type then @u else relative_type end, dp.depid, case when 'U' = obj.type then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr when obj.type in ( 'P', 'RF', 'PC' ) then @sp when obj.type in ( 'TF', 'FN', 'IF' ) then @udf end, @iter_no + 1 from #t1 as t join dbo.sysdepends as dp on dp.id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, 77) join dbo.sysobjects as obj on obj.id = dp.depid and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'TR') left join dbo.sysobjects as obj2 on obj2.id = t.relative_id and 77 = t.relative_type where @iter_no = t.rank set @rows = @rows + @@rowcount if @rowcount_ck > 0 begin delete from #t1 where relative_type = 77 end --table or view referenced by trigger insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tr.parent_obj, case o.type when 'V' then @v else @u end, @iter_no + 1 from #t1 as t join dbo.sysobjects as tr on tr.id = t.relative_id join dbo.sysobjects as o on o.id = tr.parent_obj where @iter_no = t.rank and t.relative_type = @tr set @rows = @rows + @@rowcount --table referenced by table insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, fk.rkeyid, @u, @iter_no + 1 from #t1 as t join dbo.sysreferences as fk on fk.fkeyid = t.relative_id where @iter_no = t.rank and t.relative_type = @u set @rows = @rows + @@rowcount end set @iter_no = @iter_no + 1 end --main loop --objects that don't need to be in the loop because they don't reference anybody if( 0 = @find_referencing_objects ) begin --alias types referenced by tables insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, c.xusertype, @uddt, @iter_no + 1 from #t1 as t join dbo.syscolumns as c on c.id = t.relative_id join dbo.systypes as tp on tp.xusertype = c.xusertype and tp.xusertype > 256 where t.relative_type in ( @u, @sp, @udf ) if @@rowcount > 0 begin set @iter_no = @iter_no + 1 end --defaults referenced by types insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.tdefault, @def, @iter_no + 1 from #t1 as t join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.tdefault > 0 join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0 where t.relative_type = @uddt --defaults referenced by tables( only default objects ) insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.cdefault, @def, @iter_no + 1 from #t1 as t join dbo.syscolumns as clmns on clmns.id = t.relative_id join dbo.sysobjects as o on o.id = clmns.cdefault and (o.category & 0x0800) = 0 where t.relative_type = @u --rules referenced by types insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, tp.domain, @rule, @iter_no + 1 from #t1 as t join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.domain != 0 where t.relative_type = @uddt --rules referenced by tables insert #t1 (object_id, object_type, relative_id, relative_type, rank) select t.relative_id, t.relative_type, clmns.domain, @rule, @iter_no + 1 from #t1 as t join dbo.syscolumns as clmns on clmns.id = t.relative_id and clmns.domain != 0 where t.relative_type = @u end --cleanup circular references delete #t1 where object_id = relative_id and object_type=relative_type --allow circular dependencies by cuting one of the branches --mark as soft links dependencies between tables -- at script time we will need to take care to script fks and checks separately update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u ) --add independent objects first in the list insert #t1 ( object_id, object_type, rank) select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null ) --delete initial objects delete #t1 where object_id is null update #t1 set rank = 0 -- computing the degree of the nodes update #t1 set degree = ( select count(*) from #t1 t_alias where t_alias.object_id = #t1.object_id and t_alias.relative_id is not null and t_alias.soft_link is null) -- perform topological sorting set @iter_no=1 while 1=1 begin update #t1 set rank=@iter_no where degree=0 -- end the loop if no more rows left to process if (@@rowcount=0) break update #t1 set degree=NULL where rank = @iter_no update #t1 set degree = ( select count(*) from #t1 t_alias where t_alias.object_id = #t1.object_id and t_alias.relative_id is not null and t_alias.relative_id in (select t_alias2.object_id from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and t_alias.rank=0 and t_alias.soft_link is null) where degree is not null set @iter_no=@iter_no+1 end --add name schema update #t1 set object_name = o.name, object_schema = user_name(o.uid) from dbo.sysobjects AS o where o.id = object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule) update #t1 set object_name = o.name, relative_type = case op.type when 'V' then @v else @u end, object_schema = user_name(o.uid), relative_name = op.name, relative_schema = user_name(op.uid) from dbo.sysobjects AS o join dbo.sysobjects AS op on op.id = o.parent_obj where o.id = object_id and object_type = @tr update #t1 set object_name = t.name, object_schema = user_name(t.uid) from dbo.systypes AS t where t.xusertype = object_id and object_type = @uddt -- delete objects for which we could not resolve the table name or schema -- because we may not have enough privileges delete from #t1 where object_name is null or object_schema is null --final select select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema from #t1 order by rank, relative_id drop table #t1 drop table #tempdep IF @must_set_nocount_off > 0 set nocount off  ownobj.type not in ( 'K', 'S' ) ownobj_parent.id = ownobj.parent_obj null null null null H ownobj.type not in ('PK', 'C ', 'F ', 'UQ') and ( ownobj.type != 'D' or 0 = ownobj.parent_object_id) ownobj_parent.object_id = ownobj.parent_object_id null ownobj.schema_id != 4 null ownobj.schema_id != 4 null y ftl.name ftl.lcid  spi.cntr_type != 1073939459 spi.cntr_type != 1073939712 spi.object_name spi.counter_name ISNULL(spi.instance_name,N'') x DECLARE @instance_name sysname SELECT @instance_name = null SELECT @instance_name = N'SQLAgent:' DECLARE @instance_name sysname SELECT @instance_name = CONVERT(sysname, SERVERPROPERTY('InstanceName')) IF @instance_name IS NULL SELECT @instance_name = N'SQLAgent:' ELSE SELECT @instance_name = N'MSSQLAgent$' + @instance_name + N':' CREATE TABLE #temp_agent_perf_info(object_name nvarchar(256), counter_name nvarchar(256), instance_name nvarchar(256)) CREATE TABLE #temp_job_instances (instance_name nvarchar(20)) INSERT INTO #temp_job_instances VALUES(N'_Total') INSERT INTO #temp_job_instances VALUES(N'Schedules') INSERT INTO #temp_job_instances VALUES(N'Alerts') INSERT INTO #temp_job_instances VALUES(N'Others') -- Job object INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Active Jobs', s.instance_name FROM #temp_job_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs', s.instance_name FROM #temp_job_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Failed jobs', s.instance_name FROM #temp_job_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs ratio', s.instance_name FROM #temp_job_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Jobs launched/min', s.instance_name FROM #temp_job_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Queued jobs', s.instance_name FROM #temp_job_instances s --JobStep object CREATE TABLE #temp_jobstep_instances (subsystem NVARCHAR(40) NULL) insert #temp_jobstep_instances values('ActiveScripting') insert #temp_jobstep_instances values('CmdExec') insert #temp_jobstep_instances values('TSQL') -- Check if replication is installed DECLARE @replication_installed int EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output' EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output' SELECT @replication_installed = ISNULL(@replication_installed, 0) if 1 = @replication_installed begin insert #temp_jobstep_instances values('Distribution') insert #temp_jobstep_instances values('LogReader') insert #temp_jobstep_instances values('Merge') insert #temp_jobstep_instances values('Snapshot') end if 1 = @replication_installed begin insert #temp_jobstep_instances values('QueueReader') end CREATE TABLE #temp_jobstep_instances (subsystem NVARCHAR(40) NULL, description NVARCHAR(80) NULL, subsystem_dll NVARCHAR(255) NULL, agent_exe NVARCHAR(80) NULL, start_entry_point NVARCHAR(30) NULL, event_entry_point NVARCHAR(30) NULL, stop_entry_point NVARCHAR(30) NULL, max_worker_threads INT NULL, subsystem_id INT NULL) INSERT #temp_jobstep_instances EXEC msdb.dbo.sp_enum_sqlagent_subsystems INSERT #temp_jobstep_instances ( subsystem ) VALUES (N'_Total') INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Active steps', s.subsystem FROM #temp_jobstep_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Queued steps', s.subsystem FROM #temp_jobstep_instances s INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Total Step Retries', s.subsystem FROM #temp_jobstep_instances s --Alert object INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Activated Alerts', NULL) INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Alerts/min', NULL) --General object INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Statistics' , N'Server Restarted', NULL) DROP TABLE #temp_job_instances DROP TABLE #temp_agent_perf_info DROP TABLE #temp_jobstep_instances spi.object_name spi.counter_name ISNULL(spi.instance_name,N'')  declare @scmPath sysname select @scmPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP' declare @SmoActiveDirectory sysname exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @scmPath, N'objectGUID', @SmoActiveDirectory OUTPUT DECLARE @res INT CREATE table #temp_ad(result BIT) EXECUTE @res = master.dbo.xp_MSADEnabled if @res = 0 INSERT INTO #temp_ad VALUES (1) else INSERT INTO #temp_ad VALUES (0) DROP table #temp_ad ad.result CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END  declare @SmoActiveDirectory sysname declare @RegPath nvarchar(1024) select @RegPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP\' + db_name() exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPath, N'objectGUID', @SmoActiveDirectory OUTPUT CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END  null  usr.uid >= 16384 and usr.uid <= 16393 and spv.type = 'DBR' and ((usr.uid = 16384 and spv.number >= 16384 and spv.number < 16392) or (usr.uid <> 16384 and usr.uid = spv.number)) and spv.low > 0 usr.name spv.name 0 prmssn.id = 0 prmssn.class = 0 null , val1.number = prmssn.protecttype and val1.type = 'T' val2.number = prmssn.action and val2.type = 'T' grantee_principal.uid = prmssn.uid grantor_principal.uid = prmssn.grantor grantee_principal.principal_id = prmssn.grantee_principal_id grantor_principal.principal_id = prmssn.grantor_principal_id grantee_principal.name + N'_' + convert(nvarchar(10), (CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END)) + N'_' + grantor_principal.name + N'_' + convert(nvarchar(10), (CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END)) + N'_' + convert(nvarchar(10), (prmssn.id)) + N'_' + convert(nvarchar(10), prmssn.protecttype) + N'_' + convert(nvarchar(10), prmssn.action) grantee_principal.name CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END grantor_principal.name CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END CASE prmssn.id WHEN 0 THEN 0 ELSE 1 END CASE prmssn.protecttype WHEN 204 THEN 87 WHEN 205 THEN 71 WHEN 206 THEN 68 END prmssn.protecttype val1.name val2.name grantee_principal.name + N'_' + convert(nvarchar(10), (CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN 'database' THEN 0 ELSE 2 END)) + N'_' + grantor_principal.name + N'_' + convert(nvarchar(10), (CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN 'database' THEN 0 ELSE 2 END)) + N'_' + convert(nvarchar(10), (CASE WHEN (prmssn.class=4 or prmssn.class=100 )THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN 201 WHEN 'A' THEN 202 ELSE 200 END + CASE prmssn.class WHEN 4 THEN 0 ELSE 100 END ELSE prmssn.class END)) + N'_' + convert(nvarchar(10), ascii(prmssn.state)) + N'_' + convert(varchar(10), convert(varbinary(10), prmssn.type)) grantee_principal.name CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN 'database' THEN 0 ELSE 2 END grantor_principal.name CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN 'database' THEN 0 ELSE 2 END CASE WHEN (prmssn.class=4 or prmssn.class=100 )THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN 201 WHEN 'A' THEN 202 ELSE 200 END + CASE prmssn.class WHEN 4 THEN 0 ELSE 100 END ELSE prmssn.class END ascii(prmssn.state) prmssn.type prmssn.state  null  null  prmssn.class = 100 null ! (( prmssn.action in (193, 197) and ((prmssn.columns & 1) = 1) ) or ( prmssn.action in (195, 196, 224, 26) )) and (convert(tinyint, substring( isnull(prmssn.columns, 0x01), a.low, 1)) & a.high != 0) and a.type = N'P' and a.number = 0 prmssn.minor_id = 0 [ null W null e obj.object_id = prmssn.major_id and prmssn.class = 1 obj.id = prmssn.id null object_name(obj.id) user_name(obj.uid) null obj.id obj.type 0 obj.name schema_name(obj.schema_id) COL_NAME(prmssn.major_id,prmssn.minor_id) prmssn.major_id obj.type 0 obj.schema_id = prmssn.major_id and prmssn.class = 3 null obj.name null null prmssn.major_id null 0 obj.principal_id = prmssn.major_id and prmssn.class = 4 null obj.name null null prmssn.major_id null 0 obj.assembly_id = prmssn.major_id and prmssn.class = 5 null obj.name null null prmssn.major_id null 0 obj.user_type_id = prmssn.major_id and prmssn.class = 6 null obj.name SCHEMA_NAME(obj.schema_id) null prmssn.major_id null 0 obj.is_table_type obj.fulltext_catalog_id = prmssn.major_id and prmssn.class = 23 null obj.name null null prmssn.major_id null 0 sp.principal_id = prmssn.major_id and prmssn.class = 101 null sp.name NULL NULL prmssn.major_id NULL c.certificate_id = prmssn.major_id and prmssn.class = 106 null c.name NULL NULL prmssn.major_id NULL e.endpoint_id = prmssn.major_id and prmssn.class = 105 null e.name NULL NULL prmssn.major_id NULL  sms.error < 50001 sms.msglangid = sl.lcid sms.message_id < 50001 sms.language_id = sl.lcid sms.error sms.dlevel sms.severity sms.description sms.msglangid sl.name sms.message_id sms.is_event_logged sms.severity sms.text sms.language_id sl.name  sms.error > 50000 sms.msglangid = sl.lcid sms.message_id > 50000 sms.language_id = sl.lcid sms.error sms.dlevel sms.severity sms.description sms.msglangid sl.name sms.message_id sms.is_event_logged sms.severity sms.text sms.language_id sl.name  N'' N'' N'' N'' CASE OBJECTPROPERTYEX(s.object_id,'BaseType') WHEN N'U' THEN 1 WHEN N'V' THEN 2 WHEN N'P' THEN 3 WHEN N'FN' THEN 4 WHEN N'TF' THEN 5 WHEN N'IF' THEN 6 WHEN N'X' THEN 7 WHEN N'RF' THEN 8 WHEN N'PC' THEN 9 WHEN N'FS' THEN 10 WHEN N'FT' THEN 11 WHEN N'AF' THEN 12 ELSE 0 END  drop table #contig_tmp declare @database_id int select @database_id = db_id() null null null null null null null null fi.Level fi.Pages fi.Rows fi.MinimumRecordSize fi.MaximumRecordSize fi.AverageRecordSize fi.ForwardedRecords fi.Extents fi.ExtentSwitches fi.AverageFreeBytes fi.AvgPageFullness fi.ScanDensity fi.BestCount fi.ActualCount fi.LogicalFragmentation fi.ExtentFragmentation fi.index_depth fi.page_count fi.record_count fi.min_record_size_in_bytes fi.max_record_size_in_bytes fi.avg_record_size_in_bytes fi.forwarded_record_count fi.avg_page_space_used_in_percent fi.index_type_desc fi.partition_number fi.ghost_record_count fi.version_ghost_record_count fi.avg_fragmentation_in_percent ) ! ! ? $ dmi.database_id = dtb.database_id v.name = 'db chaining' dtb.status & 1 dtb.status & 4194304 dtb.is_ansi_null_default_on dtb.is_ansi_nulls_on dtb.is_ansi_padding_on dtb.is_ansi_warnings_on dtb.is_arithabort_on dtb.is_auto_close_on dtb.is_auto_create_stats_on dtb.is_auto_shrink_on dtb.is_auto_update_stats_on dtb.is_cursor_close_on_commit_on dtb.is_concat_null_yields_null_on dtb.is_numeric_roundabort_on dtb.is_quoted_identifier_on dtb.is_read_only dtb.is_recursive_triggers_on dtb.is_local_cursor_default dtb.page_verify_option dtb.recovery_model dtb.user_access dtb.snapshot_isolation_state dtb.is_db_chaining_on dtb.is_auto_update_stats_async_on dtb.is_date_correlation_on dtb.is_broker_enabled dtb.is_trustworthy_on dtb.is_parameterization_forced ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0) ISNULL(dmi.mirroring_connection_timeout,0) DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault') DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled') DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled') DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics') DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics') DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled') DATABASEPROPERTYEX(dtb.name, 'IsNullConcat') DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled') DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled') DATABASEPROPERTY(dtb.name, 'IsReadOnly') DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled') DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault') CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END case when (dtb.status2 & v.number != 0) then 1 else 0 end DATABASEPROPERTY(dtb.name, 'IsAnsiNullDefault') DATABASEPROPERTY(dtb.name, 'IsAnsiNullsEnabled') DATABASEPROPERTY(dtb.name, 'IsAnsiWarngingsEnabled') DATABASEPROPERTY(dtb.name, 'IsAutoCreateStatistics') DATABASEPROPERTY(dtb.name, 'IsAutoUpdateStatistics') DATABASEPROPERTY(dtb.name, 'IsCloseCursorsOnCommitEnabled') DATABASEPROPERTY(dtb.name, 'IsQuotedIdentifiersEnabled') DATABASEPROPERTY(dtb.name, 'IsRecursiveTriggersEnabled') DATABASEPROPERTY(dtb.name, 'IsLocalCursorsDefault') CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsTruncLog') THEN CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN NULL ELSE 3/*SIMPLE=trunc. log on chkpt.*/ END WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN 2 /*BULK_LOGGED*/ ELSE 1 END /*FULL*/ CASE DATABASEPROPERTY(dtb.name, 'IsSingleUser') WHEN 1 THEN 1 ELSE (CASE DATABASEPROPERTY(dtb.name,'IsDboOnly') WHEN 0 THEN 0/*MULTI_USER*/ ELSE 1 END) END $ param.number = <msparam>1</msparam> CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END param.is_output param.is_cursor_ref param.is_readonly  M s.name s.id s.description s.create_date s.owner s.version_major s.version_minor s.version_build s.version_comments 0 0 s.from_msx s.has_targets  sp.subplan_name sp.subplan_id sp.subplan_description sp.job_id null 0 sp.msx_job_id sp.msx_plan sp.schedule_id  spl.task_detail_id spl.start_time spl.end_time spl.succeeded  ld.line1 ld.line2 ld.line3 ld.line4 ld.line5 ld.server_name ld.start_time ld.end_time ld.error_number ld.error_message ld.command ld.succeeded  s.plan_id s.plan_name s.date_created s.owner s.max_history_rows s.remote_history_server s.max_remote_history_rows s.log_shipping n s.logged_remotely = 1 s.plan_name  s.logged_remotely = 1 s.plan_name s.subplan_name s.source_server_name k s.logged_remotely = 1 s.plan_name s.subplan_name s.source_server_name s.task_detail_id s.start_time s.end_time s.succeeded = ld.line1 ld.line2 ld.line3 ld.line4 ld.line5 ld.server_name ld.start_time ld.end_time ld.error_number ld.error_message ld.command ld.succeeded  l.database_name l.mark_name l.description l.user_name l.lsn l.mark_time = sc.credential_id = tshp.credential_id create table #tmp_sp_help_proxy(proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null, credential_id int null, credential_identity_exists int null) insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) exec msdb.dbo.sp_help_proxy drop table #tmp_sp_help_proxy tshp.name tshp.proxy_id tshp.enabled ISNULL(tshp.description,N'') tshp.credential_id ISNULL(sc.name,N'') ISNULL(tshp.credential_identity,N'') U  create table #tmp_sp_enum_sqlagent_subsystems (subsystem nvarchar(max) null, description nvarchar(max) null, subsystem_dll nvarchar(max) null, agent_exe nvarchar(max) null, start_entry_point nvarchar(max) null, event_entry_point nvarchar(max) null, stop_entry_point nvarchar(max) null, max_worker_threads int null, subsystem_id int null) create table #tmp_sp_help_proxy_subsystem(subsystem nvarchar(max) null, proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null, credential_id int null, credential_identity_exists int null) insert into #tmp_sp_enum_sqlagent_subsystems(subsystem, description, subsystem_dll, agent_exe, start_entry_point, event_entry_point, stop_entry_point, max_worker_threads, subsystem_id) exec msdb.dbo.sp_enum_sqlagent_subsystems declare @subsystem nvarchar(max) declare @login sysname set @login = suser_sname() declare crs insensitive cursor for ( select subsystem from #tmp_sp_enum_sqlagent_subsystems ) for read only open crs fetch crs into @subsystem while @@fetch_status >= 0 begin if 'TSQL' != @subsystem begin insert into #tmp_sp_help_proxy_subsystem(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) exec msdb.dbo.sp_help_proxy @subsystem_name = @subsystem, @name = @login update #tmp_sp_help_proxy_subsystem set subsystem = @subsystem where subsystem is null end fetch crs into @subsystem end close crs deallocate crs drop table #tmp_sp_help_proxy_subsystem drop table #tmp_sp_enum_sqlagent_subsystems tsepfs.subsystem ^ create table #tmp_sp_enum_login_for_proxy(proxy_id int null, proxy_name nvarchar(128), flags int null, name nvarchar(128) null, sid varbinary(85) null, principal_id int null ) insert into #tmp_sp_enum_login_for_proxy(proxy_id, proxy_name, flags, name, sid, principal_id) exec msdb.dbo.sp_enum_login_for_proxy delete from #tmp_sp_enum_login_for_proxy where name is NULL drop table #tmp_sp_enum_login_for_proxy spl.name spl.flags  c.name c.certificate_id user_name(c.principal_id) case c.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 end c.issuer_name c.cert_serial_number c.sid c.subject c.expiry_date c.start_date c.thumbprint c.is_active_for_begin_dialog c.pvt_key_last_backup_date  o.provider_name=op.Name create table #OLEDBProv (id int identity(1,1), Name sysname NOT NULL, ParseName sysname NOT NULL,Description sysname NOT NULL ) insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.xp_enum_oledb_providers insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.sp_enum_oledb_providers delete from #OLEDBProv where exists ( select 1 from #OLEDBProv oprov where oprov.Name = #OLEDBProv.Name and oprov.id < #OLEDBProv.id ) create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit, level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) declare name_cursor cursor local fast_forward FOR (select Name from #OLEDBProv) open name_cursor DECLARE @providername sysname FETCH NEXT FROM name_cursor INTO @providername WHILE (@@FETCH_STATUS <> -1) BEGIN IF (@@FETCH_STATUS <> -2) BEGIN SELECT @providername = RTRIM(@providername) declare @regpath nvarchar(255) set @regpath = N'SOFTWARE\Microsoft\MSSQLServer\Providers\' + @providername declare @allow_in_process int declare @disallow_adhoc_access int declare @dynamic_parameters int declare @index_as_access_path int declare @level_zero_only int declare @nested_queries int declare @non_transacted_updates int declare @sql_server_like int exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT insert #oledbprop (allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, nested_queries, non_transacted_updates, sql_server_like, provider_name) select IsNull(@allow_in_process, 0), IsNull(@disallow_adhoc_access, 0), IsNull(@dynamic_parameters, 0), IsNull(@index_as_access_path, 0), IsNull(@level_zero_only, 0), IsNull(@nested_queries, 0), IsNull(@non_transacted_updates, 0), IsNull(@sql_server_like, 0), @providername END FETCH NEXT FROM name_cursor INTO @providername END CLOSE name_cursor DEALLOCATE name_cursor create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit, level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) declare name_cursor cursor local fast_forward FOR (select Name from #OLEDBProv) open name_cursor DECLARE @providername sysname FETCH NEXT FROM name_cursor INTO @providername WHILE (@@FETCH_STATUS <> -1) BEGIN IF (@@FETCH_STATUS <> -2) BEGIN SELECT @providername = RTRIM(@providername) insert #oledbprop (provider_name, allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, nested_queries, non_transacted_updates, sql_server_like) exec master.dbo.sp_MSset_oledb_prop @providername END FETCH NEXT FROM name_cursor INTO @providername END CLOSE name_cursor DEALLOCATE name_cursor drop table #oledbprop drop table #OLEDBProv op.Name op.Description o.allow_in_process o.disallow_adhoc_access o.dynamic_parameters o.index_as_access_path o.level_zero_only o.nested_queries o.non_transacted_updates o.sql_server_like  drop table #fulltext_log_tmp er.ArchiveNo er.ArchiveNo CONVERT(datetime, er.CreateDate, 101) er.Size  create table #err_fulltext_text_tmp(Text nvarchar(4000), ArchiveNo int null, ctlgid int null, LogDate datetime null, ProcessInfo nvarchar(100) null) declare @text_offset int declare @process_info_length int set @text_offset = 34 set @process_info_length = 10 drop table #err_fulltext_text_tmp ert.LogDate ert.ProcessInfo ert.Text L dmw.database_name dmw.principal_server_name dmw.mirror_server_name dmw.safety_level dmw.safety_sequence_number dmw.role_sequence_number dmw.mirroring_guid dmw.family_guid dmw.is_suspended dmw.is_suspended_sequence_number 4 xsc.schema_id <> 4 xsc.schema_id = sch.schema_id xsc.name xsc.xml_collection_id sch.name xsc.create_date xsc.modify_date XML_SCHEMA_NAMESPACE(sch.Name, xsc.name)  xsc2.xml_collection_id = xn.xml_collection_id xsc.schema_id = sch2.schema_id xn.name xn.xml_namespace_id XML_SCHEMA_NAMESPACE(sch2.Name, xsc2.name, xn.name)  comp.name comp.xml_component_id comp.xml_namespace_id comp.is_qualified (case comp.kind when 'N' then 1 when 'Z' then 2 when 'P' then 3 when 'S' then 4 when 'L' then 5 when 'U' then 6 when 'C' then 7 when 'K' then 8 when 'E' then 9 when 'M' then 10 when 'W' then 11 when 'A' then 12 when 'G' then 13 when 'V' then 14 else 1 end) (case comp.derivation when 'N' then 1 when 'X' then 2 when 'R' then 3 when 'S' then 4 else 1 end) comp.base_xml_component_id comp.scoping_xml_component_id   cp.provider_id = s.target_id s.name s.credential_id s.credential_identity s.create_date s.modify_date CASE WHEN s.target_type = 'CRYPTOGRAPHIC PROVIDER' THEN 1 ELSE 0 END ISNULL(cp.name, '') j  cp.provider_id = c.provider_id c.name c.provider_id c.guid cp.provider_version c.dll_path c.is_enabled cp.sqlcrypt_version case cp.authentication_type when 'WINDOWS' then 0 when 'BASIC' then 1 when 'OTHER' THEN 2 end cp.symmetric_key_support cp.symmetric_key_export cp.symmetric_key_import cp.symmetric_key_persistance cp.asymmetric_key_support cp.asymmetric_key_export cp.asymmetric_key_import cp.asymmetric_key_persistance V  pg.scope_object_id = o.object_id pg.name pg.plan_guide_id ISNULL(pg.query_text, N'') pg.scope_type ISNULL(o.name, N'') ISNULL(schema_name(o.schema_id), N'') pg.is_disabled ISNULL(pg.parameters, N'') ISNULL(pg.hints, N'') ISNULL((case when ((pg.scope_type = 2 and pg.scope_batch is null) or pg.scope_type = 3) then pg.query_text else pg.scope_batch end), N'') ISNULL(pg.scope_batch, N'') " create table #tmp_sysmail_help_profile(profile_id int, name nvarchar(128), description nvarchar(256) null) insert into #tmp_sysmail_help_profile(profile_id, name, description) exec msdb.dbo.sysmail_help_profile_sp drop table #tmp_sysmail_help_profile tshp.name tshp.profile_id ISNULL(tshp.description,N'')  create table #tmp_sysmail_help_account(account_id int, name nvarchar(128), description nvarchar(256) null, email_address nvarchar(128) null, display_name nvarchar(128) null, replyto_address nvarchar(128) null, servertype nvarchar(128), servername nvarchar(128), port int, username nvarchar(128), use_default_credentials bit, enable_ssl bit) insert into #tmp_sysmail_help_account(account_id, name, description, email_address, display_name, replyto_address, servertype, servername, port, username, use_default_credentials, enable_ssl) exec msdb.dbo.sysmail_help_account_sp drop table #tmp_sysmail_help_account tsha.name tsha.account_id ISNULL(tsha.description, N'') tsha.email_address ISNULL(tsha.display_name, N'') ISNULL(tsha.replyto_address, N'') v create table #tmp_sysmail_help_configure(paramname nvarchar(256), paramvalue nvarchar(256) null, description nvarchar(256) null) insert into #tmp_sysmail_help_configure(paramname, paramvalue, description) exec msdb.dbo.sysmail_help_configure_sp drop table #tmp_sysmail_help_configure tshc.paramname tshc.paramvalue tshc.description b  s{0}.principal_id = ISNULL({0}.principal_id, (OBJECTPROPERTY({0}.object_id, 'OwnerId'))) {0}.name {0}.id {0}.crdate {0}.name {0}.object_id {0}.create_date {0}.modify_date ISNULL(s{0}.name, N'') case when {0}.principal_id is null then 1 else 0 end $ tr.parent_class = 0 am2tr.object_id = tr.object_id sqlmod.object_id = tr.object_id tr.is_not_for_replication ~tr.is_disabled CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END sqlmod.uses_ansi_nulls sqlmod.uses_quoted_identifier N tr.parent_class = 100 mod.object_id = tr.object_id am2tr.object_id = tr.object_id ssmod.object_id = tr.object_id sprin.principal_id = ISNULL(ssmod.execute_as_principal_id,mod.execute_as_principal_id) asmbl.assembly_id = mod.assembly_id ~tr.is_disabled CASE WHEN tr.type = N'TR' THEN N'' ELSE asmbl.name END CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_class END CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_method END CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END ssmod.uses_ansi_nulls ssmod.uses_quoted_identifier ISNULL(sprin.Name,N'') CASE WHEN (ssmod.execute_as_principal_id IS NULL AND mod.execute_as_principal_id IS NULL) THEN 1 ELSE 2 END NULL NULL CASE WHEN ssmod.definition IS NULL THEN 1 ELSE 0 END null q sm{0}.object_id = {0}.object_id ssm{0}.object_id = {0}.object_id ISNULL(sm{0}.uses_ansi_nulls, ssm{0}.uses_ansi_nulls) ISNULL(sm{0}.uses_quoted_identifier, ssm{0}.uses_quoted_identifier) OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound')  te.type te.type_desc cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20)) \ null  te.type te.type_desc cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20))  drop table #profile_account_tmp pat.profile_name pat.profile_id pat.account_name pat.account_id pat.sequence_number  drop table #principal_profile_tmp ppt.principal_name ppt.principal_id ppt.profile_name ppt.profile_id ppt.is_default  drop table #account_server_tmp ast.servername ast.port ISNULL(ast.username, N'') ast.servertype ast.use_default_credentials ast.enable_ssl { sp.principal_id = e.principal_id e.name e.endpoint_id sp.name e.type e.protocol e.state e.is_admin_endpoint case when e.endpoint_id < 65536 then 1 else 0 end  ISNULL(se.default_database, N'') se.is_sql_language_enabled se.default_namespace 2-convert(int, se.is_xml_charset_enforced) se.default_result_schema se.wsdl_generator_procedure case LEN(ISNULL(se.wsdl_generator_procedure,'')) when 0 then 0 else 2 end se.is_session_enabled se.session_timeout CASE WHEN se.session_timeout < 0 THEN 1 ELSE 0 END case when se.endpoint_id < 65536 then 1 else 0 end  { cert.certificate_id = dme.certificate_id dme.role ISNULL(cert.name,N'') case when dme.encryption_algorithm = 0 then 0 when dme.encryption_algorithm in (3,4,7,8) then 1 when dme.encryption_algorithm in (1,2,5,6) then 2 else 0 end case dme.encryption_algorithm when 0 then 0 when 1 then 1 when 2 then 2 when 3 then 1 when 4 then 2 when 5 then 4 when 6 then 3 when 7 then 4 when 8 then 3 else 0 end dme.connection_auth case when dme.endpoint_id < 65536 then 1 else 0 end  cert.certificate_id = sbe.certificate_id sbe.is_message_forwarding_enabled sbe.message_forwarding_size ISNULL(cert.name,N'') case when sbe.encryption_algorithm = 0 then 0 when sbe.encryption_algorithm in (3,4,7,8) then 1 when sbe.encryption_algorithm in (1,2,5,6) then 2 else 0 end case sbe.encryption_algorithm when 0 then 0 when 1 then 1 when 2 then 2 when 3 then 1 when 4 then 2 when 5 then 4 when 6 then 3 when 7 then 4 when 8 then 3 else 0 end sbe.connection_auth case when sbe.endpoint_id < 65536 then 1 else 0 end  ve.discriminator case when ve.endpoint_id < 65536 then 1 else 0 end  ISNULL(he.authorization_realm,N'') he.clear_port ISNULL(he.default_logon_domain,N'') 1*he.is_ssl_port_enabled + 2*is_clear_port_enabled he.ssl_port he.url_path he.site he.is_compression_enabled 1*is_anonymous_enabled + 2*is_basic_auth_enabled + 4*is_digest_auth_enabled + 8*is_integrated_auth_enabled + 16*is_ntlm_auth_enabled + 32*is_kerberos_auth_enabled case when he.endpoint_id < 65536 then 1 else 0 end  te.port te.is_dynamic_port ISNULL(te.ip_address,'') case when te.endpoint_id < 65536 then 1 else 0 end C ewm.method_alias ISNULL(ewm.namespace,'') ewm.result_format ewm.object_name ewm.result_schema case upper(se.login_type) when 'WINDOWS' then 2 else 1 end case when ewm.endpoint_id < 65536 then 1 else 0 end  c.symmetric_key_id <> 101 ok.key_id=c.symmetric_key_id and ok.database_id=db_id() cp.guid = c.cryptographic_provider_guid c.name c.symmetric_key_id user_name(c.principal_id) c.create_date c.key_guid c.key_length (case c.key_algorithm when 'R2' then 0 when 'R4' then 1 when 'D' then 2 when 'D3' then 3 when 'DX' then 4 when 'A1' then 5 when 'A2' then 6 when 'A3' then 7 when 'DT' then 8 else -1 end) c.modify_date ISNULL(ok.status, 0) ISNULL(cp.name, '') P sp.principal_id = a.principal_id cp.guid = a.cryptographic_provider_guid a.name a.asymmetric_key_id user_name(a.principal_id) (case a.algorithm when '1R' then 0 when '2R' then 1 when '3R' then 2 else -1 end) a.key_length case a.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 when 'CP' then 3 end a.public_key a.sid a.thumbprint ISNULL(cp.name, '')  tbl.name like '#%' use tempdb * param.name param.colid null param.parameter_id param.default_value  clmns.number = <msparam>0</msparam> and <msparam>0</msparam> = OBJECTPROPERTY(clmns.id, N'IsScalarFunction') % nsp.colid = <msparam>1</msparam> and nsp.number > <msparam>1</msparam> nsp.number object_name(nsp.id) + ';' + cast(nsp.number as nvarchar(20)) nsp.encrypted nsp.procedure_number object_name(nsp.object_id) + ';' + cast(nsp.procedure_number as nvarchar(20)) CASE WHEN nsp.definition IS NULL THEN 1 ELSE 0 END v Begin With mycte(object_id, procedure_number, name, parameter_id, system_type_id, user_type_id, max_length, precision, scale, is_output, is_cursor_ref,default_value) as (select object_id, procedure_number, name, parameter_id, system_type_id, user_type_id, max_length, precision, scale, is_output, is_cursor_ref,null as default_value FROM sys.numbered_procedure_parameters) end CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END param.is_output : ((s.type = 4) AND (s.drop_lsn IS NULL)) b ke.thumbprint (case ke.crypt_type when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 end) ke.crypt_property  create table #tmp_sp_help_category (category_id int null, category_type tinyint null, name nvarchar(128) null) insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'ALERT' drop table #tmp_sp_help_category tshc.name tshc.category_id Y create table #tmp_sp_help_category (category_id int null, category_type tinyint null, name nvarchar(128) null) insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'JOB' drop table #tmp_sp_help_category tshc.name tshc.category_id tshc.category_type dt.transaction_id = ts.transaction_id tsnp.transaction_id = ts.transaction_id ta.transaction_id = ts.transaction_id ta.name ts.transaction_id ta.transaction_begin_time ts.session_id db_name(dt.database_id) dt.database_id dt.database_transaction_begin_time case when tsnp.transaction_id is null then 0 else 1 end dt.transaction_id = tsnp.transaction_id ta.transaction_id = tsnp.transaction_id ta.name tsnp.transaction_id ta.transaction_begin_time tsnp.session_id db_name(dt.database_id) dt.database_id dt.database_transaction_begin_time 1  create table #tmp_sp_help_category (category_id int null, category_type tinyint null, name nvarchar(128) null) insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'OPERATOR' drop table #tmp_sp_help_category tshc.name tshc.category_id $ @account_name is not null declare @SysAdminOnly int exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'SysAdminOnly', @SysAdminOnly OUTPUT set @SysAdminOnly = (case when 0 = @SysAdminOnly then 1 else 0 end) create table #tmpProxyAccountName ( domain sysname, username sysname) insert into #tmpProxyAccountName exec master.dbo.xp_sqlagent_proxy_account N'GET' declare @account_name nvarchar(255) set @account_name = (select domain + N'\' + username as [UserName] from #tmpProxyAccountName) if (@account_name is null) begin set @account_name=N'' end drop table #tmpProxyAccountName @account_name is not null declare @SysAdminOnly int set @SysAdminOnly = (select count(*) from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##') declare @account_name nvarchar(4000) set @account_name = (select top 1 credential_identity from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##') if (@account_name is null) begin set @account_name=N'' end @SysAdminOnly @account_name s  c.symmetric_key_id = 101 ok.key_id=c.symmetric_key_id and ok.database_id=db_id() mkdb.database_id=db_id() c.create_date c.modify_date ISNULL(ok.status, 0) ISNULL(mkdb.is_master_key_encrypted_by_server, 0)  ke.thumbprint (case ke.crypt_type when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 else -1 end) ke.crypt_property  declare @DiagramSPPath nvarchar(512) select @DiagramSPPath = quotename(db_name()) + '.dbo.sp_helpdiagrams' create table #tmp_sp_helpdiagrams ([Database] sysname not null, Name sysname not null, ID int not null, Owner sysname null, OwnerID int not null) insert into #tmp_sp_helpdiagrams exec @DiagramSPPath drop table #tmp_sp_helpdiagrams 'Server[@Name=' + quotename(cast(serverproperty(N'Servername') as sysname),'''') + ']/Database[@Name=' + quotename(db_name(),'''') + ']/DatabaseDiagram[@Name=' + quotename(tshd.Name,'''') + ' and @OwnerID=' + quotename(cast(tshd.OwnerID as nvarchar(30)),'''') + ']' tshd.Name tshd.ID tshd.Owner tshd.OwnerID c er.log_id er.event_type er.log_date er.description er.process_id er.mailitem_id er.account_id er.last_mod_date er.last_mod_user H DECLARE @is_policy_automation_enabled bit SET @is_policy_automation_enabled = (SELECT CONVERT(bit, current_value) FROM msdb.dbo.syspolicy_configuration WHERE name = 'Enabled') f CASE WHEN OBJECT_NAME(c.classifier_function_id) IS NULL THEN N'' ELSE QUOTENAME(OBJECT_SCHEMA_NAME(c.classifier_function_id, 1)) + N'.' + QUOTENAME(OBJECT_NAME(c.classifier_function_id, 1)) END c.is_enabled (SELECT is_reconfiguration_pending FROM sys.dm_resource_governor_configuration)  p.pool_id p.name case when p.pool_id < 256 then 1 else 0 end p.min_cpu_percent p.max_cpu_percent p.min_memory_percent p.max_memory_percent O wkg.group_id wkg.name case when wkg.group_id < 256 then 1 else 0 end wkg.group_max_requests CASE WHEN N'Low' = wkg.importance THEN 0 WHEN N'Medium' = wkg.importance THEN 1 WHEN N'High' = wkg.importance THEN 2 END wkg.request_max_cpu_time_sec wkg.request_max_memory_grant_percent wkg.request_memory_grant_timeout_sec wkg.max_dop  DB_ID()=dek.database_id dek.encryptor_thumbprint=cer.thumbprint dek.encryptor_thumbprint=asymkey.thumbprint dek.encryption_state dek.create_date dek.opened_date dek.regenerate_date dek.modify_date dek.set_date (case dek.key_algorithm when 'AES' then (case dek.key_length when 128 then 0 when 192 then 1 when 256 then 2 end) when 'TRIPLE_DES_3KEY' then 3 end) dek.encryptor_thumbprint ISNULL(cer.name, asymkey.name) (case when cer.name is null then 1 else 0 end)  DECLARE @edition sysname SET @edition = cast(SERVERPROPERTY(N'EDITION') as sysname) serverproperty(N'Servername') ISNULL(serverproperty(N'instancename'),N'') case when @edition = N'SQL Azure' then 2 else 1 end 0x0010 BSJB v2.0.50727l]#~^#Strings5{#USd#GUIDt #BlobW_ 399)     0 A]ub    ,ob.b   6  yL@D"w"""<#"o##"#"8899 @;>cD[GDJ%J|M N NOQQ= RjT%J?[b9\bzb-Spة"*9Rzbt֪I)xe_)) "R^Ӭ.ƭݭGb 殆  b  bb_|"ް 5   b첆<a8u888³8!b鴼0"> d׵ĵ鵼.@n ɶ8ay8緿  Kmuʸ)Z~gຆ(b 4%Jٻ%J%J%J)""ϼռ./9-KnĽ&939 y ĵĵ]߿$%itdĵ = 85†M†oœÜ*:ftit tttt!t-'t-,t-0t-4t-8&t-<:t-AJt-F[t-Nst-St-Xt-\t-`t-dt-kt-qt-vt-{t-t-$t-5t-Ht-Wt-nt-xt-t-t-t-t-t-t-'t-:t-Pt-^t-{t-t-t-t-t-t-t-t-t-t-0t- >t-Wt-wt-#t-(t-+t-1t-6t-D t-G$t-N0t-h;t-lIt-p^t-unt-|~t-t-t-t-t-t-t-t- t-t-5t-Ht-Tt-bt-rt-t-t-t-t-t-t-t-t-$t- :t- Lt-\t-gt-st-t-"t-'t-+t-/t-3t-6t-:-f9-jH-oV-re-o-|-------- - - -, -: -O -b -k - - t t  t  t ! t ' t * t / t B% t Q7 t TN tVf tZ t ] t-a ta te to tHs tHu1 tHwT ty{ t~ t  t t t  th -  t5 th- tK tj t t t9 t= t# t# t& th)  t- t3* t63 t8<& tOD@ tOGV tOIl tOK tOM tOO tOS tOX tP[tS`%tSb;tSdRtTfmtThtTjtXvtZ{tZ}t\t_"tb(tdEteXtmltvtwtwtw- M tMttt-t-8t-Qtbtqttt t\!t\!t!t!"t!%$tQ!'<tU")Rtx#/ntx#0tx#1#2#dt-TktktX%,t-JtbtXK9>1E!37<<<A FF8JENhNNZ`iryJFNN NU"$^"Nl"J")"."$V$V($V3$VB$$VR$VU$V]$$V]$Vb$Vp$$V}$V$V$$V]$V$V$$V]$ V$ V$ V$ $V$V$V$V$$V$7V$7V$7V$7V$7V$7V%7$V %TV%TV}$TV%T$V%XV%XV)%XV%X$V/%aV7%aVB%a$VJ%eVQ%eV\%e$Va%iVe%iVk%i$Vt%mV$mVx%mV%mV%mV$m$V%vV%vV%vV%vV%v$V%zV%zV%zV%z$V$~V$~V%~V%~$V%V%V&$V &V&V&$V]$V!&$V7&VA&VK&VV&$Va&Vk&Vu&V7&VA&VK&$V%V&V&V&V&V&V&V&V&V&V&$V&V&V&V'$V]$V'V'$V]$V'V '$V%'V*'V3'$V@'VG'VM'V['$V@'V`'V['$V@'VM'V['$VG'VM'V['$V]$Vo'$Vx'V'$V'V'V'V'$V%V'V'V%V'V'$V'V(V($V!( V V%( $V*(V3(V8(VB($VM(VR(Vb(Vi(V&V&Vs(V(V(V($V\%Vs($V\%!Vs(!V(!$V(&V(&V(&V(&$V*(+Vs(+V(+V(+$V]$0V\%0Vs(0V)0V'0V)0$V!(5V )5V)5$V]$:V$:V($:V3$:VB$:$V]$?V*)?V0)?V;)?V@)?VM)?$V])DVc)DVm)DVv)D$V)IV)IV)IV)IV)IV)IV)IV)IV)IV)I$V)NV)NV)NV)N$V)SV)S$V*XV%XVm)XV%XVc)X$V)]V)]V)]V)]$V]$bV}$bV*bV*bV-*bV?*bVV*bVs*bV*bV*bV*bV*bV*b$V*vV +v$V]${V+{V)+{V>+{VH+{Vg+{$V*(V|+V+V;)V@)VM)V+V+V+V+V+V+V+V+V,V,V*V$,V*)V+,V0)V;,V%VD,V%$V]$VU,Vg,$V]$Vp,Vz,$V]$V%V!(V\%$V!(V,V,V,V,V,$V]$V,V,V,V,V,$V]$V%V-V,$V]$V-V-V-$V]$V$-V(-Vt%$V.-V6-V&$V>-VH-$V]$VR-$V[-Vf-V]$$V]$ VR- Vn- $V]$Vv-V-$V-V&V-V%V-V-Vt%$V- V- V- V- V- V- V- V- V. V& $V.%V.%V&.%VJ%%V0.%V5.%V;.%VI.%VQ.%VY.%Vd.%Vt.%V~.%V.%$V]$4V.4V.4V.4V.4V.4$V]$9V.9V/9$V]$>V />V/>V!/>$V]$CV./CV3/CV9/C$VB/HVG/HVL/HVZ/H$V&MVl/MVv/M$V]$RV)RV/RV/RV/R$V-WV-WV/WV%WV/WV/WV/WV/WV/WV/W$V 0\V0\V0\V!0\V.0\$V]$aV20aV:0aVt%a$VB0fVK0fVS0fV[0f$Vn-kVf0kVn0k$pVw0sV&sV0sV&s$pV)%V &$V]$V0V0Vt%$V]$V0V0$V$V$V$$V&V0V0V0$VV0V0$V3(V1V1$V1V!1V$1$V'1V&$V.-V6-V01$V71VZ1Vk1V~1V1V1V1V1V1V2V:2VQ2Vn2V2V2V2V2V2V$V2V 3V2V3V43V@3VH3VS3Vk3V3V3V3V3V3V4V(4V=4VY4Vt4V4V4V4V4V($V4V]$V4$V4V5V 5Vt%$V5V%5$Vx' V25 VB5 VJ5 VS5 V]5 V Vj5 Vv5 V5 V5 V5 $V5%V5%V5%V5%$V5*V5*V]$*$V6/V 6/V6/V6/$V014V%64V/64V564V?64V%4$V49VJ69VQ69VW69V49$V^6>Vc6>VJ6>Vj6>V%>$Vo6CVy6CV6CV6CV6CV6CV%CV6C$V6HV6HV6HVM(HV,HV6HV6H$V56MV01MV?6MV%6MV%M$V7RV7RV7R$V]$WV"7WV27WVE7WV]7WVn7WV7W$V7\V7\$V]$aV7aV7aV7aV7a$V'fV'fVM(fV%fV7f$V7pV7pV 8pV8p$V%uV"8uV38u$V;8zVB8zVI8zVQ8zV[8zVd8zVk8zVt8zVb zV}8z$V;8VB8VI8VQ8V[8Vd8Vk8Vt8Vb V}8$V%V8V8V8888N889$VK= V7 V= V= d?Nk?7 z?< Jn@ @@8@NA $VSA V[A V' aAiArAyAAANk?7 Bk?7 5BJEB< [BN C C )C< :C< SCNFdC< xCPEaAXE rEwEEJEEc E< FF-F 2F?F FFEFNXF 'H .HN9H HHQIQ'IQ;IQSIQtIQIQIQIQIQIQIQIQIQIQIQIQIQJQJJFJJNJWJJ< JNJNJ)K K4(K0K7=KNK7=KNKLLLNLLLLMXEGMFZMeMlMwM?MBMM~M~-F 4N=NHNF1[NxNM~M~NNO< O"@ O&OO P+PN&PN8P1FPXP6$VR1VR1wMRRRRNSS S-S8SwM?SHSXSpSSSSSNSSSQIQS1I1'I1;I1SI1S1I1I1 T1T1I1T1$T1-T1;T1CT1KT3ST<1T1T1T1T1T1 U$V)UXV/UXVEUXV]UXVnUXVUXVUXVUXVUXVUXVUXVVXVVXV0VXVAVXVVVXVeVXVuVXVVXVVXVVXVVXVVXV #XVVXV-XVVXVVXVWXVWXV#WXV2WXV@WXVcWXVrWXVWXVWXVWXVWXVWXVWXVWXVWXVXXVXXV"XXV0XXV>XXVJXXVUXXV`XXV2XV$XV2XVH3XV3XVzXXVXXVXXV(XVXXVXX$V)UVVV #V2V$VXV2V@3VH3V3VXVXV(VXVX$VXV YVYV2YVEYVVYVpYVYVYVYVYVYVYVYVYVYV ZVZV6ZVEZV&VbZVtZVZVZVZ[JH[[ wMBMV`V`VaV(aV>aVQaV_V_V_V_V_VmaV `V `V}aV5`VL`V[`VaVg`VaVaVaVv`V`V`V`VaVaVaV6V6V6VM(V,V6V6V%V bVbVbV'bV.bV:bVIbVYbVkbb%b&$Vb&Vb&Vb&Vb&Vb&Vc&Vc&V2c&VMc&Vfc&Vzc&Vc&Vc&Vc&Vc&Vc&Vc&V d&Vd&V5d&VJd&V]d&Vsd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Vd&Ve&Ve&V.e&V9e&VKe&Vee&Ve&Ve&Ve&Ve&Ve&Ve&Ve&Ve&Vf&Vf&V#f&V0f&V:f&VDf&VWf&Vpf&V|f&Vf&VW&VV&Vf&VW&VW&Vf&Vf&V#W&Vf&Vf&V2W&V6Z&Vg&V2g&VEg&V]g&VrW&Vtg&Vg&VcW&Vg&Vg&Vg&Vg&Vg&Vg&VW&Vh&Vh&V.h&VW&VW&V>h&VW&VQh&VW&VW&VW&VX&Vdh&Vvh&V0X&Vh&Vh&VX&V"X&V>X&Vh&VJX&Vh&VUX&Vh&Vh&V`X&Vh&Vi&V i&V!i&V.i&V@i&VSi&Vci&Vpi&Vi&Vi&Vi&Vi&Vi&Vi&Vi&Vj&Vj&V5j&VJj&V^j&Vpj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&Vj&V k&V!k&V/k&V=k&VGk&VXk&Vqk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vk&Vl&Vl&V.l&V=l&VNl&VZl&Vdl&Vpl&Vyl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vl&Vm&Vm&aA&|N׊d(Hd(d(d(ed(d(d(|d(ύd(+d(d(ݎd(*d(d(d(;d(d(ސd(^d(d(d($Vbi(Vbi(Vbi(Vbi(Vci(Vci(V2ci(Vfci(Vzci(Vci(Vci(Vdi(V5di(VJdi(V]di(Vsdi(Vdi(Vdi(Vdi(Vdi(Vdi(Vei(Vei(V.ei(VKei(Vei(Vei(Vei(Vei(Vfi(Vfi(V#fi(V0fi(V:fi(VWfi(Vpfi(V|fi(Vfi(VWi(VVi(Vfi(VWi(VWi(Vfi(Vfi(V2Wi(Vgi(V]gi(VrWi(Vtgi(Vgi(VcWi(Vgi(Vgi(VWi(Vhi(Vhi(V.hi(VWi(VWi(VWi(VWi(VWi(VWi(VXi(V0Xi(Vhi(Vhi(VXi(V"Xi(V>Xi(Vhi(VJXi(Vhi(VUXi(Vhi(V`Xi(Vhi(V ii(V!ii(V.ii(V@ii(VSii(Vcii(Vii(Vii(Vii(Vii(V5ji(VJji(V^ji(Vpji(Vji(Vji(Vji(Vji(Vji(V ki(V!ki(V/ki(V=ki(VXki(Vki(Vki(Vki(Vki(Vki(Vki(Vli(Vli(V.li(V=li(VNli(VZli(Vdli(Vpli(Vyli(Vli(Vli(Vli(Vli(Vli(Vli(Vmi(Vmi(aAi(|Nݔ(B(((h(ܖ(5(((I(Ϙ("((י(N((!(((>((ޜ(7(((9(((k(((=((ˠ((Y(((O(((6(z((( 1t11111111<1P1 K% R) R-Y!R2!R8!X)"`>)"iC0"sH8"~L@"PS"Xg"a {"k"v"""#"P*#v, #1H#2p#3#4#5#6#7#7 $80$;P$<Y$=b$?v$A$D$F$HI$ I$J$K$M$ O$'R%'.U%'4V+%';X;%2C[c%2K]%9R_%9Za0&> e>&>fL&>g[&>ij&> kz&>'n&J.q&J4r&J;t&Yw&Ydy8'Yk{w'e}'ed'ek'sr'{''{' ({(3(G(e(x(((((()$)d){w)))))))*'.*'A*/S*@e*@x*E*M*W*c*c +c +WL+cx+R)+PQ+eV+z\+b+i+o+v+v+{, ,{,0,E{&,Y/,m7,z@,L,,,,,0-)-)./?.AL.A.T.d-@/-/81L22L3)Z3)v34)3Q3g)4v4,44 4445l67Gt7P)7Z7o7 7 8(8)49)9)9 ) ::6);HM; U;]^;r)g;)p;;h<<S<[<f<)t8=JL=WP@\@AR)HAR)pAxAACTC$E[EtF)GG G H (H* 0HR) 8HR) H  H+  H= H HEv Im  Iz IX  !Ih  4Ip 4Ub#6U#F6HV#-7V#M8V#T9W#[:TWf<aW*l<pW#r<W#y>W#@X#B7X#EDX#H Y#L(Y#NDY$QYRY*S$ZT5[R)U=[8UE[8UN[9VV[9V_[9lWg[59Wp[L9fXx[X9X[d9Y[n9-Y[RZ[R[[R)^ \x9)^!\~9)^8\9^^9_^9`D_9a_Ra_R)b_9b_9b_Rc_9fax9)ha:ha:hb:hRbRh[bA: irbN: ibRibb:jbk:jbz: jb: jbRjb:kc:kc:kc:kd;k(d ;kTd;kd3;, kdM;0 ke^;k)eg;kDer;6 kf|;k!f;k3f;kEf;kWf;kof;; kfRkfN<lf\<lfmlf;lfzV lgq<\ l6gb lMgN: ldghRmGh&= nrhRn{h6=oh@=oh9ohRoh:ph9piRpiR=q/iY=qGih= qriRq|i= ri&=ri=rjRr j= s j;s8jk:sPj=shj=sj>sj>sj9sj;; sjRsjM>tj= tj;; tkRtk9u)kRu2k9v?kRvHk9wUkRw^kU>xpk= xkc> xk9xkRxk&=yk> yk9ykRyk>zl>zl> zn> {o> }Ho? o? p#? 0p8?  @\ ?$F "Ax R)sFLF3Fv†F ˆFنF-FF F F G)$G  8G TmG zG rDG+G ;G PG _G pG G G)R)BH0 \THeHsH {H FG ËG)ӋR)G)HH!HH[HH{H G F R) F K% č^J jJ#drJ(x~J)G +tJ .G 0R)3 G 3ER)6PG 6R)9G 9R)<G <R)?J? J@(G AvR)DJDȕJEJIKG JTR)M\G MܚG)PR)PR)P kDP K-Q4G RўG)UG UtR)X|G XR)[G [HR)^PG ^آR)aG aR)d R)d)Fd,FK<d~M>dWK@dXG)eheKVetK)fPK)fKVfܨG gKjFkG)kK-kG lŮR)oЮG oYR)raR)rpFrtG r1LMuٯDLTv[L]wyL-xHLdyR)zǰFz̰G zHL }G) Rl*:2L-;R=HCEsLMTM-]RxsMH{&Ms-MH6MsR)R,R|MM-MM-MM-:L-NHȳNsѳ=Hٳ_Es R)3N;NDNtNȺN?>OO!O,O 5O=ORO`O`OiO/K%<R{= R)OYR)aRVqR;0B;bPDxPKP PSPSPXPPP),P);Q)I 'QHV 1Qc >QHhx9)RQ0 aQ lQ@qQ0 zQHX) QHQ^8 `SB `cVQhdQmtQrQ>Q|QJQ*R8 RYRg%Ru-R6R^?RHRPR[RASeR4oRhKR)TK%4pTATATTNTUR)ZZxZR)2R):R)Pp'[D DSJR[^[R)R j[H-[<[hL[[[-R) <[0 [c G F G) R) [c [9R)D[c'\#R)G 7R\*^R)hG R)$R-4h\XR4h\;\E \M"8\W%\_'R)+R)+R)+R)+\l+"\q+*]w,6]w,B?]w,NY]w,Zs]w,f]w,r]w,~]w,]w,]w,]w,^w,*^w,>^w,R^w,k^w,y^w,^w,^w,^w,^w,&^w,2^w,>_w,J_w,V _w,b-_w,n8_w,zH_w,[_w,o_w,_w,_ ,_-_ /_ 0_ 1 `2 ` 45` 5L`6"[` 8/g` 9<v` :I` ;V` <c` =pR)>x\l>\q>[R ?[R&@[R &BK%E<R(EK|; (FSc(F\s(GxC@(I"m(K/m(MO9m'(OKm'(Ocm'(Otm'(Om'(Om'(Om'(Om'(Om'(O n'(O 'n'(O !q'(OG!)q'(OP!Cq'(OY!Yq'(Ob!hq'(Ok!yq'(Ot!q'(O}!q'(O!q'(O!q'(O!q'(O!q'(O!r'(O!r'(O!+r'(O!Dr'(O!Zr'(O!mr'(O!r'(O!r'(O!r'(O!r'(O"r'(O " s'(O"s'(O";s'(O("Rs'(O1"ns'(O:"s'(OC"s'(OL"s'(OU"s'(O^"s'(Og"s'(Op"t'(Oy",t'(O"$Kx'(OJ$cx'(OV$yx'(Ob$x'(On$x'(Oz$x'(O$x'(O$x'(O$x'(O$y'(O$y'(O$$y'(O$>y'(O$Vy'(O$hy'(O$zy'(O$y'(O %y'(O%y'(O"%y'(O.%y'(O:%y'(OF%y'(OR% z'(O^%z'(Oj%-z'(Ov%Nz'(O%gz'(O%wz'(O%z'(O%z'(O%z'(O%z'(O%z'(O%z'(O%z'(O% {'(O%{'(O&${'(O&:{'(O&V{'(O*&h{'(O6&x{'(OB&{'(ON&{'(OZ&{'(Of&{'(Or&{'(O~&{'(O&R)O&R9(O&R@(P&RG(Q&RR'S'{@(S%'{@(T9'C@O(UC'O(VP'sX(Wl'C@X(Yx'{X(['|X(]'j[H_'_X(|_`(|_i(9m`w()|`(Kma(;|a(cmb(S|b(tmc(d|c(md(|d(me)|e)mf%)|f4)mgB)|gQ)mh_)|hn)ni})|i)'nj)}j)-N-p]-m-p|--p--q--)q--Cq-3.Yq.I'.hq6.XF.yqU.ie.qt.w.q..q..q..q.ɀ/q/ր/r./>/rM/]/+rl/|/Dr/4/Zr/J/mr/]/r/r/r00r&060rE0ʁU0rd0ꁌt0 s00s00;s0+0Rs0B0ns0^1s1y.1s=1M1s\1l1s{1Ƃ1s1ق1s1邌1t11,t12y9.9Vy9F:hy:X':zy9:jL:y^:xq:y::y::y::y:̈;y;߈*;y<;툌O; za;t;z; ;-z;;Nz;>;gz;W<wz<g-<z?<yR<zd<w<z<<z<<z<ω<z<݉ =z=퉌0= {B=U={g=z=${==:{=*=V{ =F =h{ =X >x{  >h 3>{ E>r X>{ j>} }>{>>{>>{>>{>Š?K%jEwE!EbEEËE싌E-EIE}EFь!F6F2CFWXFeFzF덈F FLFqFFĎFFGFGf$G1GʏFG SG  hGQ!uGk!G"G"G#G2#Gy$G$GՑ%G%H9&H]&4HRn('CH|;u((KHc{((THs()pHC@(+|H"m(-H/m(/H1H9m(1Hcm(1Htm(1Hm(1Hm(1Hm(1Hm(1Hn(1H'n(1Hn(1In(1 In(1Io(1Io(1(I6o(11IPo(1:Ibo(1CIo(1LIo(1UIo(1^Io(1gIp(1pI(p(1yI;p(1I`p(1Ip(1Ip(1Ip(1Iq(1ICq(1IYq(1Ihq(1Iyq(1Iq(1Iq(1Iq(1Iq(1Iq(1Jr(1 Jr(1J+r(1JDr(1$JZr(1-Jr(16Jr(1?Jr(1HJs(1QJns(1ZJs(1cJs(1lJs(1uJs(1~Js(1Jy(1LVy(1%Lhy(1.Lzy(17Ly(1@Ly(1ILy(1RLy(1[Ly(1dL z(1mLgz(1vLwz(1Lz(1Lz(1Lz(1Lz(1Lz(1Lz(1Lz(1L {(1L{(1L:{(1LV{(1L{(1L{(1L{(1L{(1M{(1MR)1MR(1 MR(20MR(3oMR4M5M{(5M{(6MC@(7M(8Ms(9MC@(;M{(=N|(?!Nj[HA(NAN|AN|AN9mBN)|B OcmCOS|C'OtmD5Od|DDOmERO|EaOmFoO|F~OmGO|GOmHO|HOnIO|IO'nJO}JOnKPq}KPnL P}L0PnM?P}MOPoN^P}NnPoO}P~OP6oPP&~PPPoQP@~QPboRPR~RPoSP~S QoTQ~T(QoU7Q~UGQoVVQ~VfQpWuQWQ(pXQXQ;pYQ+YQ`pZQPZQp[Q[Rp\R\ Rp]/R]?Rq^NR^^RCq_mR3_}RYq`RI`RhqaRXaRyqbRibRqcRwcRqdSdSqe'Se7SqfFSɀfVSqgeSրguSrhShSriSiS+rjSjSDrkS4kSZrlTJlTrmTm/Trn>TʁnNTro]TꁌomTsp|TpTnsqT^qTsrTyrTssTsTstTtUsuUƂu'Usv6UقvFUV3uMV#]VBulV2|VRuVBVauVQVuVVuVVuWĄWu&Wل6WvEWUWvdWtW"vWW4vW$WCvW3WRvWBWyvWiXvX|.Xv=XMXv\XlXv{X҅XvXㅌX wXX wXX4wX$YwYw&Yw5YEYwTYdYwsYنY2xY"YKxY;YcxYSYyxYiYxZZx-Z=ZxLZއ\ZykZ{Z$yZZ>yZ.ZVyZFZhyZXZzy[j[y%[5[yD[T[yc[̈s[y[߈[y[툌[ z[[gz[W[wz[g\z\y-\z<\L\z[\k\zz\\z\ω\z\݉\z\퉌\ {\]{]%]:{4]*D]V{S]Fc]{r]r]{]}]{]]{]]{]Š^K%mmmZmv nnЕ+n8n?MnZnon|nnMninnǗnn(nsoo蘈&o;oBHof]ojooo%ooooٚoo@ocppʛ)p6p"KpYXpxmpzpŜpppSpsppɝpqqW$qy9qFqឌ[q%hqH}qqqƟqޟq q$qQqirr'r⠈4rIr+VrBkrsxrrȡr塌rr4rdr}rs̢s"s7sJDsbYsfs{sңs꣌s%sLL@M>v>>>>>ĬȬĬάĬȬȬ        $$       QQ\QQ\  hpx$$$$$$  > L @ LQek}wMwMwMwMwMe?SJTTwM'h}eӱױe47=BFY=BFY=Bhn~FYnnnwMWBFLL ӱ} ӱwMeRBF\f}pw\"+eMFLZF{-0@-SǹvǹҹvwMwMҹZeeeĬĬĬeĬĬeĬWWWWYeĬeeeĬeeeĬeeeĬjpTxC?SúúúǺ˺Ĭ eĬĬeeĬYi"9wM999wM99wM9˻лջ?M"4ջ˻˻0wM9;AwM9wM9wM9wM9wM9GOwM9BMXdwM9wM9wM9wM9wM9wM9wM9wM9wM9wM9wM9wM9?wM99wMfi?MBMWZMeMlMwM?MBMZMeMlMwM?MBMMMĬBM4H?SfK׾BMwM++(9(9 wM)5<>I5<>wMbGGGW47n   %wM944wM9 wM9wMBM^Rf^f^}ĬQBMQ;;FPFPFPFP[dlsdddd[d[d[d[d;;FPFPFPFP[dlsdddd[d[d[d[d  !!%)1 AEIa@L)R-1R-9R-AR-IR-QR-YR-aR(qR-yR-RRR-R-R-R-R-R(RsR)R- R)R)R)))5)sHY)Y)f)X) |>))))))))))R)* * **&*-* H  ''.'4';26* R)IR)sHIJ<*> >>>> >'J.J4J;W*W*]*c*i*p*x**** *]***R*!)* *''*/@@*E*M*c*R-01R);*R*1U1F1]*=1q*i:a@)X)1=+q+Z@ R)9@Hq]+1ۮd+9j+1r+1x+1%+15+qE+9+1u+q+QR+1>+QkD+ ̯+C@+Z@+iLi|;L1sFL9@Hq.f1@HyR,yi,%,%,H(-)C@R)lӰ6,<,C@6 R+QOK,C@1s[,Z@~,@@qR)@=*qU9@H쮗,R),Y,1]&=˱,`,1v,"1SR)C@++iβir;6 iڲ,1 ,U-[-R)b-`1AR)AӰ6,A(-4-C@-AG-8? XAN-C@-1R)yc-R)m---ϳ-|;e,1ڳ-IsH!.-(.IJ0.9R.IQs.Q.Q.Qȴ.q޴q #)q#) .QR.QR.)R.1R-aR.q.q.q.9)Q.Q#.`.IR)Q[q9lQ.fRI/YdR/Q9laR4iR)1qԶb1qb1y`Ri11H1"H2p1q>b1qPz11yfy1y|;ylQ1R-R1;1R-x9).1>1R)RsC@2! 2IJ2 M HR(2: W.2 B22a2IRs`Sa@)2iR)iL-i_E-i ii(i92iF2q]*1x2yLy39@H`SϺ2׺2{2<U-`2S=3Z@ β R-`c 4i3|;co3RR)R3jT3黙3`3!)|;3Z@ 13/3R3Ri1Ri1C@3i(49`.4AHA>5499@HIP4W4Q]$^4QRc4Qw4R-&Y~4Y qR)4=3yϽ5yR-߽5轵c"51R(5IR1>x9)M*Ili5*R)R)UC@~55);0 ˾X> X))x9)i=i:R~6C@646ASlQeRIYT6jzl6ɿ6ؿ66ؿ6'QH1QRQ0 ssX)X)QHPR97Q`*7Ui3HRoRhR17)H)sH1F 11  Rs  `h 7 ~L  7770 !71w7R8&89ϳ89Z@ ϳ$8ARB8R)R4\;zp8Qw8h\Q:Y8\M\_![R8M#÷8Y.!R8 Z@ # (-2; $@(,E0J4O<@@DHPTX\\dhl@t@x|@q@@ $(@048<@DOLPTX\`dhlpt|@@@@@@ $(@048<@@DJLPT\`dlpt@x@JE;\@@@J  $(,48<@D@HPTX\@dhlpt@x|JE;@@@JE;\gl q $(,@04J<@D@HLPTJXE\`gdqhlptx|O@@J@J@$(,0@8<@D@LPT\`hltx|@@JE;\@JE; \glq *$/,048<@HLPX\`@dlptx@@@@JE;\g@J @ @(,08x<z@|D~LxPzX\`d@lpt|@@@ J E ;  \ g l q *$ /( q, 0 4 8 < @ D H L P T X \ ` d h l p t x |              ;     @  J E ;  \ g l q   @    @$ ( , 0 @8 < @ D @H L JT X \ ` d l p t x |            @  J E ; @    J   @           $ ( , ;4 8 < k@ D qL P T @X ` d h p t x |          @  J E ;  \ g    @    @0 4 8      l         S j   $ /(  lp@]JE;\glq */q $(,048<@DHLPTX\`dhlptx| bglqv{@JE;\glq*/ @$(J,E0;48\<g@lDqH*L/PqTX\`dhlpt 6 [    )!R!u!!!!"0"M"d""""" #*#K####$:$M$ z$$$$$ %$$%(1%,J%0[%4h%8%<%@%D%TX\`@dhJlEp;tx\|glq*/q bgl qv{ $(,048<@DH]LPTX\&`&d#h &lp-t%&x*&|/&4&9&>&C&H&M&(R&W&\&a&2f&k&p&u&z&&&&&&O&&&&&&& &&&&& &$&(&,&0&4&8&<&@&D'H'L 'PTX'\'`'d'h$'l)'p.'t3'x8'|='B'G'L'Q'V'['`'e'j'o't'y'~''''''''''''''''''''''' '''(|@JE;\glq*/q  $ (b,g0l4q8v<{@DHLPTX\`dhlp]tx|&&# &-%&*&/&4&9&>&C&H&M&(R&W&\&a&2f&k&p&u&z&&&&&& O&&& $&(&,&0&4&8&<&@&D&H&L&P&T&X&\&`&d&h&l'.;T.g.9. :.+3:.3:.;:.C:.S*.[:.c:.k*.{*.*.*.:.R<.=. ?.@.A.ZC.D.0F.G.H.XJ.K. M.lN.O.}Q.R.U.@W.X.@Z.[.A].^.:`.a..c.d.f.g. i.j.l.m.o.p.r.s.t.wv.w.jy.z.q|.}.o.ڀ.T.΃.O.Ɇ.K.щ.6...... .........z..z..|.ب.0...b..&...S..1...v.ܽ.=...c..:..@..B..,...K...[..'...K.....M.......n..^..V..:.....s.._..U.^C)ck*k*k*k*k*+`/333{3{+/ 3 {# 3 3c 3 :/ :/ :/# 3 3c333+}0#3c333ck*k*k*k*k*k*#k*Ck*ck*k*k*k*k*#k*Ck*ck*k*k*k*k*k*Ck*c)ck*k*k*k*#k*Ck*ck*k*k*k*k*#k*Ck*k*k*k*C)k*Ck*3I8C c C /: 0/:0/:)00:=0!0:R0A0:i0AU:0aU:0U:0U:1U: 1U:1V:51$j{d{)))**C*L*R*******++#+/+5+B++++++ ,),B,Q,c,,,,,,,,-@-j----...7.L.Y.g.q......./ /// /&/,/9/@/Z/U11111112282T2X2g2o2x22222222233'373C3N3X3b3u333333334444=4h444444444444445505q555555566=6C6W6c6j666677$787C7M7W7e7m7y777777777+88888882989C9"$&*<JLMOPSV^adfhnpqrxz}[%*/ !l'-- 2228 <!B,F8MI8b8 B8M!"/-8"8'","B9"B99899B-:6: 9/ Z: 3(B:B:& :& %(B;8;B;8;B;8;8 & }$B:B!>B+>8D>B=BA

& A

B>& >& 0=B>& *(B>B>& @8 @84@8 e =h@/ @ }$B=3/B BBBB,E8= 0=B3/BE8=w=B>& @8G H-!B H8H8H8H/H/H8HBH8H8H8KI0BH8H8H8%(Bw=/./B?M/BM/NBNB&NB%(B1N/=/vO8O>& xR/~R8R/R/R/,F[[/H8,Fx\B`{``a(a>aQama}aaaaaaaa666M(,66% bbb'b.b:bIbYbkb`{3/-(b3(b3(b3(b3(b3(c3(c3(2c3(Mc3(fc3(zc3(c3(c3(c3(c3(c3(c3( d3(d3(5d3(Jd3(]d3(sd3(d3(d3(d3(d3(d3(d3(d3(d3(d3(e3(e3(.e3(9e3(Ke3(ee3(e3(e3(e3(e3(e3(e3(e3(e3(f3(f3(#f3(0f3(:f3(Df3(Wf3(pf3(|f3(f3(W3(V3(f3(W3(W3(f3(f3(#W3(f3(f3(2W3(6Z3(g3(2g3(Eg3(]g3(rW3(tg3(g3(cW3(g3(g3(g3(g3(g3(g3(W3(h3(h3(.h3(W3(W3(>h3(W3(Qh3(W3(W3(W3(X3(dh3(vh3(0X3(h3(h3(X3("X3(>X3(h3(JX3(h3(UX3(h3(h3(`X3(h3(i3( i3(!i3(.i3(@i3(Si3(ci3(pi3(i3(i3(i3(i3(i3(i3(i3(j3(j3(5j3(Jj3(^j3(pj3(j3(j3(j3(j3(j3(j3(j3(j3(j3( k3(!k3(/k3(=k3(Gk3(Xk3(qk3(k3(k3(k3(k3(k3(k3(k3(k3(k3(l3(l3(.l3(=l3(Nl3(Zl3(dl3(pl3(yl3(l3(l3(l3(l3(l3(l3(l3(l3(l3(l3(m3(m3([/8b8b8b8b8b8c8c82c8Mc8fc8zc8c8c8c8c8c8c8 d8d85d8Jd8]d8sd8d8d8d8d8d8d8d8d8d8e8e8.e89e8Ke8ee8e8e8e8e8e8e8e8e8f8f8#f80f8:f8Df8Wf8pf8|f8f8W8V8f8W8W8f8f8#W8f8f82W86Z8g82g8Eg8]g8rW8tg8g8cW8g8g8g8g8g8g8W8h8h8.h8W8W8>h8W8Qh8W8W8W8X8dh8vh80X8h8h8X8"X8>X8h8JX8h8UX8h8h8`X8h8i8 i8!i8.i8@i8Si8ci8pi8i8i8i8i8i8i8i8j8j85j8Jj8^j8pj8j8j8j8j8j8j8j8j8j8 k8!k8/k8=k8Gk8Xk8qk8k8k8k8k8k8k8k8k8k8l8l8.l8=l8Nl8Zl8dl8pl8yl8l8l8l8l8l8l8l8l8l8l8m8m888Ē888858V8o8888ؓ888+8A8\88883/(b(b(b(b(c(c(2c(fc(zc(c(c(d(5d(Jd(]d(sd(d(d(d(d(d(e(e(.e(Ke(e(e(e(e(f(f(#f(0f(:f(Wf(pf(|f(f(W(V(f(W(W(f(f(2W(g(]g(rW(tg(g(cW(g(g(W(h(h(.h(W(W(W(W(W(W(X(0X(h(h(X("X(>X(h(JX(h(UX(h(`X(h( i(!i(.i(@i(Si(ci(i(i(i(i(5j(Jj(^j(pj(j(j(j(j(j( k(!k(/k(=k(Xk(k(k(k(k(k(k(l(l(.l(=l(Nl(Zl(dl(pl(yl(l(l(l(l(l(l(m(m([/8b8b8b8b8c8c82c8fc8zc8c8c8d85d8Jd8]d8sd8d8d8d8d8d8e8e8.e8Ke8e8e8e8e8f8f8#f80f8:f8Wf8pf8|f8f8W8V8f8W8W8f8f82W8g8]g8rW8tg8g8cW8g8g8W8h8h8.h8W8W8W8W8W8W8X80X8h8h8X8"X8>X8h8JX8h8UX8h8`X8h8 i8!i8.i8@i8Si8ci8i8i8i8i85j8Jj8^j8pj8j8j8j8j8j8 k8!k8/k8=k8Xk8k8k8k8k8k8k8l8l8.l8=l8Nl8Zl8dl8pl8yl8l8l8l8l8l8l8m8m8s888Ǥ888+8C8b888¥8888?8_8~888Ѧ888868O8m888§8֧8888,8?8Y8r8888Ψ888 8 k j m l n o pqrsutwvxy{|~!#%')+-/1135579 ; ; = =??AACC%E&G(I)K+M,O-Q.S0U1W2Y3[4]5_6a7c8e9g:i;k<m=o>q?s@uAwCyD{E}FGHIJKLMNOPRSUWX[^_`bcdfghijklnpqrz{|       !!##%%'-)0+5-6/7183;5=7k9l;m=v?~ACEEGGIIKKMMOOQQSSUUWWYY[[]_acegikmoq q su w(y3{4{5}6789:;<=>?@ABCDEFGHIJKLMNOPQRSTfelstuvwxyz{|}~   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}         !"#!$#3%5'6'7)8):+9+<-;-=/>/?1@1A3B3D5C5F7E7G9H9J;I;K=L=N?M?PAOAQCRCTESEVGUGWIXIYKZK\M[M]O^O_Q`QaSbSdUcUfWeWgYhYi[j[k]l]n_m_paoaqcrcseteugvgxiwizkyk{m|m}o~oqqssuuwwyy{{}}            !"#$%&('*)+,.-/!0!2#1#4%3%5'6'7)8)9+:+<-;->/=/?1@1B3A3C5D5F7E7H9G9I;J;L=K=N?M?OAPAQCRCTESEUGVGWIXIYKZK\M[M^O]O_Q`QaSbScUdUfWeWhYgYi[j[k]l]m_n_paoarcqcseteugvgwixizkyk|m{m}o~oqqssuuwwyy{{}}   !#%')+- / 1 3 5 79;=?ACEGIKMOQSUWY[ ]!_"a#c$e%g&i'k(m)o*q+s,u-w.y/{0}123456789:;<=>?@ABCDEFGHIJY[\]^_`bacdfeghjilkmnopqrtsvuwxyz{|~}      !!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aa c c e e ggiikkmmooqqssuuwwy y!{"{$}#}&%'()*+,.-0/12435687:9;<=>?@BADCEFHGIJLKNMOPRQTSUVXY[Z\]_^`acbedfghijkmlonpqsrtuwvyxz{}|~  T 1 7!7 (٫}  8 {@ ȳ 18T0sh`H&p(*,& /54?9L>Ybj8t}@PhhN Xv+(@(Vc0vp`(H>(C@U.X:`\F0`Oc^HfootxH*`<0Pl.1;C8G@VhZ]&b3PsDPȔYhpuȺh( %<(RP,n@367@J_(k ry0?Op\iXz`h(x%EYv x8 *P68;X=o(CF(O^H@ 8% 5I0]Pvh  +AE Ja8l x4Ȭ3X G0M \(a uxq r u p     !ȝ , 9 M d` u  H  `      # 8& L`( `HM tpR T PZ X_ Pc xh l xm )o ;s M8y e| xP   ș   p  2 J [ g  0   x  ` `  &/ ;X5 ZP8 v; > PD 8J  R W ^  H` h =q Yt jh{ | X  8 `  P   %@ 6 Hx c |p H p      *X F [ l ~ Microsoft.SqlServer.SqlEnum.dllSqlSecureStringMicrosoft.SqlServer.Management.Smo.InternalSqlObjectBaseMicrosoft.SqlServer.Management.SmoSqlObjectDatabaseLevelSqlServerStatementBuilderExecuteSqlDatabaseCategoryFileGrowthTypeIndexKeyTypeLockEscalationTypeSpatialIndexTypeSpatialGeoLevelSizePermissionStateBackupDeviceTypeUserDefinedFunctionTypeServerLoginModeLockRequestStatusRecoveryModelCategoryClassMediaTypesLoginTypeUserTypeWindowsLoginAccessTypeDatabaseUserAccessProviderAuthenticationTypeMappedClassTypeCollationVersionCompatibilityLevelDatabaseStatusSnapshotIsolationStateRangeTypeDataCompressionTypeAssemblySecurityLevelExecutionContextServerDdlTriggerExecutionContextDatabaseDdlTriggerExecutionContextActivationExecutionContextAssemblyAlterOptionsImplementationTypeUserDefinedTypeFormatResourceUsageFullTextCatalogUpgradeOptionStopListOptionRestoreTypeCatalogPopulationStatusCatalogPopulationActionIndexPopulationActionBackupSetFlagBackupSetTypeIndexPopulationStatusChangeTrackingReplicationOptionsPrincipalTypePrivateKeyEncryptionTypeSymmetricKeyEncryptionAlgorithmAsymmetricKeyEncryptionAlgorithmCreateDispositionTypeSymmetricKeyEncryptionTypeDatabaseEncryptionAlgorithmSynonymBaseTypeDatabaseEncryptionTypeDatabaseEncryptionStateObjectClassPageVerifyMirroringRoleMirroringSafetyLevelMirroringOptionMirroringStatusMirroringWitnessStatusRetentionPeriodUnitsHttpPortTypesEndpointStateXmlFormatOptionXsdSchemaOptionResultFormatMethodXsdSchemaOptionWsdlGeneratorOptionHttpAuthenticationModesLogReuseWaitStatusXmlTypeKindRepairOptionsRepairStructureXmlTypeDerivationSecondaryXmlIndexTypeEndpointTypeEndpointEncryptionEndpointEncryptionAlgorithmEndpointAuthenticationOrderProtocolTypeServerMirroringRoleForeignKeyActionXmlDocumentConstraintNSActivationStateMethodLoginTypeAuditLevelPerfMonModeWorkloadGroupImportanceFileStreamLevelPlanGuideTypeAuditDestinationTypeAuditFileSizeUnitOnFailureActionAuditStatusTypeAuditActionTypeActivationOrderMicrosoft.SqlServer.Management.Smo.AgentAgentLogLevelsAgentMailTypeAgentSubSystemAlertTypeCategoryTypeCompletionActionCompletionResultFrequencyRelativeIntervalsFrequencySubDayTypesFrequencyTypesJobExecutionStatusJobOutcomeJobServerTypeJobStepFlagsJobTypeNotifyMethodsOSRunPriorityStepCompletionActionTargetServerStatusWeekDaysMonthlyRelativeWeekDaysPolicyHealthStateMicrosoft.SqlServer.Management.DmfDiskFileXmlReadXmlReadRepeatedXmlReadDocXmlReadPropertiesXmlReadIncludeXmlReadPropertyXmlReadSettingsXmlReadParentLinkXmlRequestParentSelectXmlReadSimpleParentLinkXmlRequestParentSelectFieldXmlReadMultipleLinkLinkFieldTypeXmlReadLinkFieldsXmlReadPropertyLinkXmlReadConditionedStatementXmlReadConditionedStatementPrefixXmlReadConditionedStatementFailConditionXmlReadConditionedStatementPostfixXmlReadConditionedStatementPostProcessXmlReadOrderByRedirectXmlReadSpecialQueryUtilConditionedSqlConditionedSqlListConditionedSqlListEnumeratorSqlPropertyLinkJoinTypeSqlObjectPropertySqlConditionedStatementSqlConditionedStatementPrefixSqlConditionedStatementPostfixSqlConditionedStatementFailConditionParentLinkSqlRequestSqlEnumResultPrimaryFileLinkFieldLinkMultipleSqlPostProcessPostProcessPostProcessTextPostProcessBodyTextPostProcessParamPostProcessCreateDateTimePostProcessCreateDatePostProcessCreateTimePostProcessCreateDateSeconds1990PostProcessCreateTimeSpanHMSPostProcessPermissionCodePostProcessOwnObjectsPostProcessSplitFourPartNamePostProcessFragmentationPostProcessIPAddressPostProcessIP6AddressPostProcessJobActivityPostProcessStatisticStreamPostProcessCreateSqlSecureStringPostProcessDatabaseInsideAttribsPostProcessAutoClosePropertiesPostProcessFilePropertiesPostProcessAuditPropertiesPostProcessUserSqlTypeConvertIDKeySqlEnumDependenciesSingletonServerDbSchemaNameSqlEnumDependenciesRequestParentSelectSqlSupportRestorePlanDataProviderRetriveModeColumnDataManipulationDdlTextParserHeaderInfoDdlTextParserSingletonDdlTextParserDatabasePermissionSetValueObjectPermissionSetValueServerPermissionSetValuePermissionDecodeDatabaseOptionSqlObjectUnionEventSetBasePostProcessDdlEventsPostProcessDatabaseDdlTriggerEventsPostProcessServerDdlTriggerEventsAvailableSQLServersPostProcessVersionPostProcessXmlToListLocDisplayNameAttributeEnumToLocResConverterJobExecutionStatusConverterRecoveryModelConverterMirroringStatusConverterStringSqlEnumeratorMicrosoft.SqlServer.Management.Smo.SqlEnumResServerDdlTriggerEventValuesServerDdlTriggerEventServerDdlTriggerEventSetDatabaseDdlTriggerEventValuesDatabaseDdlTriggerEventDatabaseDdlTriggerEventSetmscorlibSystemObjectICloneableIComparableIComparable`1IDisposableMicrosoft.SqlServer.Management.Sdk.SfcEnumObjectISqlFilterDecoderCallbackISupportInitDatabaseEngineDataISupportVersionsISupportDatabaseEngineTypesEnumSystem.CollectionsIEnumeratorObjectPropertyRequestEnumResultIEnumDependenciesSystem.DataIDataReaderIDataRecordValueTypeSystem.ComponentModelDisplayNameAttributeEnumConverterSystem.SecuritySecureStringdatalengthempty.cctor.ctorDisposeget_Itemget_Emptyget_LengthCloneCompareStringComparisonSystem.GlobalizationCultureInfoCompareOrdinalCompareToConcatContainsCopyEndsWithEqualsFormatIFormatProviderGetHashCodeIndexOfIndexOfAnyInsertJoinLastIndexOfLastIndexOfAnyop_Equalityop_Inequalityop_AdditionPadLeftPadRightRemoveReplaceSplitStringSplitOptionsStartsWithStringArrayToSqlSecureStringArraySubstringToBstrToLowerToLowerInvariantToSecureStringToStringToUpperToUpperInvariantTrimTrimEndTrimStartop_Explicitop_ImplicitSystem.Data.SqlTypesSqlStringItemEmptyLengthm_sbm_parentLinkm_conditionedSqlListm_propertyLinkListm_postProcessListm_RequestParentSelectSortedListm_OrderByRedirectm_SpecialQueryArrayListm_LinkFieldsm_distinctget_StatementBuilderset_StatementBuilderget_ParentLinkset_ParentLinkget_RequestParentSelectset_RequestParentSelectget_OrderByRedirectget_SpecialQueryget_ConditionedSqlListset_ConditionedSqlListget_PropertyLinkListset_PropertyLinkListget_PostProcessListset_PostProcessListget_Distinctset_DistinctUrnSetUrnget_SqlRequestget_ObjectNameObjectPropertyUsagesGetSqlPropertyResultTypeget_ResultTypesAddRequestPropertyRegisterPostProcessHitsAddRequestPropertiesAddFilterPropertyAddOrderByPropertyAddLinkPropertyAddConditionalsJustPropDependenciesAddConditionalsRetrieveParentRequestLinksPropagateRequestedParentPropertiesRetrieveParentRequestAddLinkPropertiesAddParentLinkPropertiesAddParentLinkPropertiesParentAddParentLinkPropertiesLocalIntegrateParentResultAddXpathFilterPrepareGetDataGetDataBuildStatementSystem.ReflectionAssemblyget_ResourceAssemblyAddSpecialQueryAddSpecialQueryToResultBuildResultFillDataWithUseFailureSystem.Collections.SpecializedStringCollectionFillDataClearHitsAddPropertyForFilterAddConstantForFilterget_SupportsParameterizationAddLinkFieldsget_CalculateParentRequestResolveLocalLinkLinksAddPostProcessTriggersStoreInitialStateRestoreInitialStateGetRequestedParentSelectFillPrefixPostfixResolveComputedFieldGetAliasPropertyNameAddOrderByInDatabaseAddOrderByAcrossDatabasesAddOrderByDatabaseOrderByDirectionGetFixedFilterValueOrderByRedirectSpecialQueryPropertyLinkListPostProcessListDistinctObjectNameResultTypesResourceAssemblySupportsParameterizationCalculateParentRequestXPathExpressionBlockInitializeMicrosoft.SqlServer.ConnectionInfoMicrosoft.SqlServer.Management.CommonServerVersionDatabaseEngineTypeLoadInitDataLoadInitDataFromAssemblyLoadInitDataFromAssemblyInternalLoadAndStoreLoadIncludeFilem_PropertyNameForDatabasem_XmlAssemblym_bLastDatabaseLevelm_bForChildrenget_NamePropertyDataTableGetRequestedDatabasesIsDatabaseNameOrDerivateCleanupFilterNamePropertyGetServerVersionGetDatabaseEngineTypeSystem.TextStringBuilderm_urnm_prefixm_fieldsm_fromm_wherem_postfixm_orderBym_ParentPropsm_NonTriggeredPropsm_conditionm_postProcessm_bDistinctm_bStoredPropsAddedm_InternalSelectbFirstJoinIsClassicget_ParentPropertiesSetInternalSelectget_NonTriggeredPropertiesget_IsFirstJoinIsEmptyget_Fromset_FromAddElementAddUrnAddPrefixAddConditionAddPostfixAddFieldsAddFromAddJoinAddWhereAddOrderByAddPropertyAddPostProcessMergeInternalSelectget_SqlStatementget_SqlPostfixClearPrefixPostfixMakeCopyStoreParentPropertyGetSqlNoPrefixPostfixAddStoredPropertiesGetOrderByClearOrderByGetCreateTemporaryTableSqlConnectAddColumnSelectAndDropClearFailConditionParentPropertiesNonTriggeredPropertiesIsFirstJoinFromSqlStatementSqlPostfixServerConnectionm_conctxbHasConnectedm_MessagesSqlExecutionModesm_semInitialSystem.Data.SqlClientSqlInfoMessageEventHandlerm_ServerInfoMessagedatabaseNameInitServerConnectionWithDatabaseNameConnectDisconnectInitConnectionStartCaptureSqlInfoMessageEventArgsRecordMessageClearCaptureExecutionFailureExceptionTryToReconnectExecuteImmediateExecuteWithResultsSqlDataReaderGetDataReaderSqlCommandExecuteImmediateGetMessageGetDataProviderExecutevalue__PublishedSubscribedMergePublishedMergeSubscribedKBPercentNoneDriPrimaryKeyDriUniqueKeyTableDisableAutoGeometryGridGeographyGridLowMediumHighDenyRevokeGrantGrantWithGrantCDRomDiskFloppyAFloppyBPipeTapeUnknownInlineScalarNormalIntegratedMixedGrantedConvertingWaitingSimpleBulkLoggedFullJobAlertOperatorAllFixedDiskFloppySharedFixedDiskWindowsUserWindowsGroupSqlLoginCertificateAsymmetricKeyNoLoginNonNTLoginUndefinedSingleRestrictedMultipleWindowsBasicOtherCryptographicProviderVersion80Version90Version100Version105Version60Version65Version70RestoringRecoveryPendingRecoveringSuspectOfflineStandbyShutdownEmergencyModeAutoClosedInaccessibleDisabledEnabledPendingOffPendingOnLeftRightRowPageSafeExternalUnrestrictedCallerOwnerExecuteAsUserSelfExecuteAsLoginNoChecksTransactSqlSqlClrNativeUserDefinedSerializedDataSerializedDataWithMetadataBackgroundBelowNormalAboveNormalDedicatedAlwaysRebuildAlwaysResetImportWithRebuildOffNameDatabaseFileFileGroupVerifyOnlyIdleCrawlinProgressPausedThrottledIncrementalUpdatingIndexDiskFullPauseNotificationUpdateMinimalLogDataWithSnapshotReadOnlyDatabaseSingleUserModeDatabaseLogFileOrFileGroupManualPausedOrThrottledAutomaticLoginServerRoleUserDatabaseRoleApplicationRoleNoKeyMasterKeyPasswordProviderCryptographicProviderDefinedRC2RC4DesTripleDesDesXAes128Aes192Aes256TripleDes3KeyRsa512Rsa1024Rsa2048CreateNewOpenExistingSymmetricKeyViewSqlStoredProcedureSqlScalarFunctionSqlTableValuedFunctionSqlInlineTableValuedFunctionExtendedStoredProcedureReplicationFilterProcedureClrStoredProcedureClrScalarFunctionClrTableValuedFunctionClrAggregateFunctionServerCertificateServerAsymmetricKeyUnencryptedEncryptionInProgressEncryptedEncryptionKeyChangesInProgressDecryptionInProgressObjectOrColumnSchemaSqlAssemblyUserDefinedTypeSecurityExpressionXmlNamespaceMessageTypeServiceContractServiceRemoteServiceBindingServiceRouteFullTextCatalogServerServerPrincipalEndpointFullTextStopListTornPageDetectionChecksumPrincipalMirrorSuspendResumeRemoveWitnessFailoverForceFailoverAndAllowDataLossSuspendedDisconnectedSynchronizingPendingFailoverSynchronizedConnectedMinutesHoursDaysSslClearStartedStoppedXmlFormatSqlFormatStandardAllResultsRowSetsDefaultDefaultProcedureProcedureAnonymousDigestNtlmKerberosNothingCheckpointLogBackupBackupOrRestoreTransactionMirroringReplicationSnapshotCreationLogScanAnyAnySimplePrimitiveListUnionComplexSimpleComplexElementModelGroupElementWildcardAttributeAttributeGroupAttributeWildcardAllErrorMessagesExtendedLogicalChecksNoInformationMessagesTableLockEstimateOnlyPhysicalOnlyDataPurityExtensionRestrictionSubstitutionPathValuePropertySoapTSqlServiceBrokerDatabaseMirroringSupportedRequiredAesAesRC4RC4AesNegotiateNtlmCertificateKerberosCertificateNegotiateCertificateCertificateNtlmCertificateKerberosCertificateNegotiateHttpTcpNamedPipesSharedMemoryViaPartnerWitnessNoActionCascadeSetNullSetDefaultContentDocumentEnablePendingDisablePendingSuccessFailureContinuousOnDemandTSqlAccessTSqlLocalFileSystemAccessTSqlFullFileSystemAccessSqlTemplateSecurityLogApplicationLogMbGbTbContinueFailedApplicationRoleChangePasswordGroupAuditChangeGroupBackupRestoreGroupBrokerLoginGroupDatabaseChangeGroupDatabaseMirroringLoginGroupDatabaseObjectAccessGroupDatabaseObjectChangeGroupDatabaseObjectOwnershipChangeGroupDatabaseObjectPermissionChangeGroupDatabaseOperationGroupDatabaseOwnershipChangeGroupDatabasePermissionChangeGroupDatabasePrincipalChangeGroupDatabasePrincipalImpersonationGroupDatabaseRoleMemberChangeGroupDbccGroupDeleteFailedLoginGroupFullTextGroupLoginChangePasswordGroupLogoutGroupReceiveReferencesSchemaObjectAccessGroupSchemaObjectChangeGroupSchemaObjectOwnershipChangeGroupSchemaObjectPermissionChangeGroupSelectServerObjectChangeGroupServerObjectOwnershipChangeGroupServerObjectPermissionChangeGroupServerOperationGroupServerPermissionChangeGroupServerPrincipalChangeGroupServerPrincipalImpersonationGroupServerRoleMemberChangeGroupServerStateChangeGroupSuccessfulLoginGroupTraceChangeGroupFirstLastErrorsWarningsInformationalSqlAgentMailDatabaseMailActiveScriptingCmdExecSnapshotLogReaderDistributionQueueReaderAnalysisQueryAnalysisCommandSsisPowerShellSqlServerEventSqlServerPerformanceConditionNonSqlServerEventWmiEventLocalJobMultiServerJobNeverOnSuccessOnFailureAlwaysSucceededRetryCancelledInProgressSecondThirdFourthHourMinuteOnceAutoStartDailyMonthlyMonthlyRelativeOneTimeOnIdleWeeklyExecutingWaitingForWorkerThreadBetweenRetriesWaitingForStepToFinishPerformingCompletionActionStandaloneTsxMsxAppendToLogFileAppendToJobHistoryLogToTableWithOverwriteAppendToTableLogAppendAllCmdExecOutputToJobHistoryProvideStopProcessEventLocalMultiServerNotifyEmailPagerNetSendNotifyAllTimeCriticalQuitWithSuccessQuitWithFailureGoToNextStepGoToStepSuspectedOfflineBlockedSundayMondayTuesdayWednesdayThursdayFridaySaturdayEveryDayWeekEndsCriticalHealthyNoPolicySystem.XmlXmlTextReaderm_readerm_aliasm_closedm_versionm_databaseEngineTypeget_Readerset_Readerget_Closedset_Closedget_DatabaseEngineTypeset_DatabaseEngineTypeget_Versionset_Versionget_Aliasset_AliasCloseSkipIsElementWithCheckVersionGetAliasStringGetFieldsGetTextOfElementReaderClosedVersionAliasNextSystem.IOStreamm_fsLoadFileReadUnionget_Settingsget_PropertiesSettingsPropertiesget_Propertyget_IncludeIncludeget_Fileget_TableAliasget_RequestedFieldsget_ROAfterCreationTableAliasRequestedFieldsROAfterCreationget_Nameget_ReadOnlyget_ClrTypeget_ExtendedTypeget_DbTypeget_Expensiveget_ReadOnlyAfterCreationget_KeyIndexPropertyModeget_PropertyModeget_Castget_Hiddenget_Usageget_Valueget_Tableget_Linkget_Sizeget_HasPropertyLinkget_MultipleLinkReadOnlyClrTypeExtendedTypeDbTypeExpensiveReadOnlyAfterCreationKeyIndexCastHiddenUsageLinkSizeHasPropertyLinkMultipleLinkget_MainTableget_AdditionalFilterget_FailConditionget_PropertyLinkget_Prefixget_Postfixget_PostProcessMainTableAdditionalFilterFailConditionPropertyLinkPrefixPostfixget_SimpleParentLinkSimpleParentLinkget_FieldFieldget_Localget_ParentParentget_Noget_Expressionget_LinkFieldsNoExpressionLinkFieldsComputedFilterget_Typeget_DefaultValueTypeDefaultValueget_Fieldsget_InnerJoinget_ExpressionIsForTableNameget_LeftJoinget_FilterFieldsInnerJoinExpressionIsForTableNameLeftJoinget_Sqlget_ClassNameget_TriggeredFieldsClassNameTriggeredFieldsget_RedirectFieldsRedirectFieldsget_Databaseget_QueryQueryDbTypeToClrTypeDataSetTransformToRequestEscapeStringMakeSqlStringLoadAssemblyCreateObjectInstanceUnEscapeStringSplitNamesEscapeLikePatternm_usedm_LinkMultiplem_colsSetFieldsget_IsUsedIsHitTestHitIsDefaultget_AcceptsMultipleHitsget_UsedMarkHitClearHitget_LinkMultipleset_LinkMultipleAddLinkMultipleAddHitIsUsedAcceptsMultipleHitsUsedget_CountAddAddHitsAddDefaultGetEnumeratorCountbaseEnumeratorSystem.Collections.IEnumerator.get_Currentget_CurrentMoveNextResetSystem.Collections.IEnumerator.Currentm_tablem_filterm_bExpressionIsForTableNamem_joinTypeAddAllset_TableGetTableNameWithAliasGetFilterClassicInnerm_valuem_dbTypem_sizem_Aliasm_SessionValuem_bCastset_ValueGetValueGetTypeWithSizeGetValueWithCastInitSessionValueget_SessionValueset_SessionValueget_DBTypeSessionValueDBTypem_sqlGetLocalSqlInitm_listLinkFieldm_PrefixPostfixFieldsm_bResolveDatabasesSetLinkFieldsset_ResolveDatabasesget_ResolveDatabasesget_PrefixPostfixFieldsset_PrefixPostfixFieldsMergeLinkFiledsResolveDatabasesPrefixPostfixFieldsm_databasesm_SchemaPrefixesm_NamePropertiesm_SchemaPrefixPropertiesm_LastDbLevelSetm_PostProcessFieldsdbTypeget_PostProcessFieldsget_NamePropertiesset_NamePropertiesget_SchemaPrefixPropertiesset_SchemaPrefixPropertiesget_LastDbLevelSetset_LastDbLevelSetget_Levelget_Databasesset_Databasesget_SchemaPrefixesset_SchemaPrefixesDataRowGetSqlGetUseSubstituteSchemaPrefixget_MultipleDatabasesIsDatabaseListEqualBuildSqlGetSingleDatabaseSqlPostProcessFieldsNamePropertiesSchemaPrefixPropertiesLastDbLevelSetLevelDatabasesSchemaPrefixesMultipleDatabasesm_fieldm_typeset_Typeset_Fieldm_nom_expressionm_listLinkget_HasLinkFieldsset_NoGetSqlExpressionSetSqlExpressionHasLinkFieldsm_classNamem_assemblym_triggeredFieldsm_HitFieldsGetPostProcessInstanceRegisterm_cim_objectNamem_reqbLookUpOrdinalDonem_triggeredColumnsIdLookupget_ConnectionInfoset_ConnectionInfoget_HitFieldsset_HitFieldsGetIsFieldHitset_ObjectNameget_Requestset_RequestIsLookupInitget_SupportDataReaderCheckDataReaderSupportInitNameBasedLookupUpdateFromNameBasedToOrdinalLookupDataRowCollectionBinarySearchBinarySearchSetOnFirstIsNullGetTriggeredObjectGetTriggeredInt32GetTriggeredBoolGetTriggeredStringGetColumnDataCleanRowDataConnectionInfoHitFieldsSupportDataReaderm_textm_btextSetm_dtTextGetTextForAllRowsGetTextForObjectget_IsTextSetSetTextGetTextFor90IsTextSetm_idxm_idxEndget_IdxStartget_IdxEndget_HasParantesisget_TableVariableNameIdxStartIdxEndHasParantesisTableVariableNamesSingleLineCommentSqlsSingleLineCommentCsNestedMultiLineCommentsNestedMultiLineCommentOptimizedsSingleQuotedStringSqlsDoubleQuotedStringsBraketedWordsWordsNumbersHexNumbersParamValueQIsParamValuesCommasParanthesissEqsDelimsParamsGrammarQIsGrammarm_textListSystem.Text.RegularExpressionsRegexm_rsRegexQIsRegexParseParamsGetTextIsProcessedGetParamGetDateTimeGetSmoCodeFromSqlCodeShilohToYukonPermissionGetDatabaseLevelGetUrnm_listNamescalledUseDBisInitDataRowcontigDataInitRowDatadtm_bytesPerPagem_querym_rowResultsnoaccessget_BytesPerPageGetRowResultsBuildCommonSqlBuildSqlStatementMoreEqual90BuildSqlStatementLess90AddDbChainingGetPathBytesPerPagem_rowAutoCloseDataCalculateAutoCloseMissingPropsmaximumFileSizeInAcceptedRangemaximumFileSizeUnitGetMaximumFileSizeGetMaximumFileSizeUnitGetMaximumFileSizeInMegaBytesGetMaxFileSizeValueInAcceptedRangeAndUnitConvertFileSizeToAcceptedFormat1uSidfirstTimestrExecuteQuerym_typeNamem_typeNom_pathset_Nameget_Pathset_Pathm_idget_idset_idget_typeset_typeidtypem_typeConvertTableserverNamedbNameschemaNamenameStringComparersvrComparerdbComparerget_ServerNameset_ServerNameget_DatabaseNameset_DatabaseNameget_SchemaNameset_SchemaNameget_Idset_IdServerNameDatabaseNameSchemaNameIdm_serverm_databasem_tempDependenciessqlEnumDependenciesSingletonm_targetVersionisCloudget_IsDbCloudset_IsDbCloudget_TypeConvertTableTypeToNoDependencyChainCollectionDependencyRequestEnumDependenciesGetStringCultureFindByNoBuildIDKeyBuildKeyDumpRowResolveDeferredLinksGetUrnByQueryBuildUrnGetUseStringIsDbCloudTypeConvertTablem_FieldsCompareOptionsGetCompareOptionsFromCollationm_execSqlm_dataReadernonTriggeredPropertiesCountrowDatarowDataManipulationm_bHasTypeCastm_bHasPostProcessm_RetriveModem_nCurentCachePosm_commandSetConnectionAndQueryInitRowDataManipulationInitSchemaTableGetTrigeredValueGetDataFromStorageSetDataInStorageReadInternalManipulateRowDataPostProcessManipulateRowDataTypeManipulateRowDataget_Depthget_IsClosedget_RecordsAffectedGetSchemaTableNextResultReadGetTableget_TableRowCountget_FieldCountAdjustIndexGetBooleanGetByteGetBytesGetCharGetCharsGetDataTypeNameDateTimeDecimalGetDecimalGetDoubleGetFieldTypeGetFloatGuidGetGuidGetInt16GetInt32GetInt64GetNameGetOrdinalGetStringGetValuesIsDBNullDepthIsClosedRecordsAffectedTableRowCountFieldCountRetriveDataReaderRetriveDataTabletargetTypesourceTypepostProcessscriptForCreateindexCreateindexNameStartindexNameEndobjectTypeschemadatabaseprocedureNumberindexNameStartSecondaryindexNameEndSecondaryschemaSecondarynameSecondarydatabaseSecondaryhasParanthesisreturnTableVariableNameregexm_r_endsProcNumbersSingleQuotedStringsDotsPharanthesissExecsReturnssReturnsTablesReturnsDelim1sDelim2ddlTextParserSingletonMatchReadNameFromDdlReadFullNameFromDdlCheckDdlHeaderParseDdlHeadersNestedMultiLineCommentOptimized_endsSpace_endsWord_endsEol_endsSingleLineComment_endsReject_endParseCheckOptionAlterAlterAnyAsymmetricKeyAlterAnyApplicationRoleAlterAnyAssemblyAlterAnyCertificateAlterAnyDatabaseAuditAlterAnyDataspaceAlterAnyDatabaseEventNotificationAlterAnyFulltextCatalogAlterAnyMessageTypeAlterAnyRoleAlterAnyRouteAlterAnyRemoteServiceBindingAlterAnyContractAlterAnySymmetricKeyAlterAnySchemaAlterAnyServiceAlterAnyDatabaseDdlTriggerAlterAnyUserAuthenticateBackupDatabaseBackupLogControlConnectReplicationCreateAggregateCreateAsymmetricKeyCreateAssemblyCreateCertificateCreateDatabaseCreateDefaultCreateDatabaseDdlEventNotificationCreateFunctionCreateFulltextCatalogCreateMessageTypeCreateProcedureCreateQueueCreateRoleCreateRouteCreateRuleCreateRemoteServiceBindingCreateContractCreateSymmetricKeyCreateSchemaCreateSynonymCreateServiceCreateTableCreateTypeCreateViewCreateXmlSchemaCollectionShowplanSubscribeQueryNotificationsTakeOwnershipViewDefinitionViewDatabaseStateImpersonateSendViewChangeTrackingAdministerBulkOperationsAlterAnyServerAuditAlterAnyCredentialAlterAnyConnectionAlterAnyDatabaseAlterAnyEventNotificationAlterAnyEndpointAlterAnyLoginAlterAnyLinkedServerAlterResourcesAlterServerStateAlterSettingsAlterTraceAuthenticateServerControlServerConnectSqlCreateAnyDatabaseCreateDdlEventNotificationCreateEndpointCreateTraceEventNotificationViewAnyDefinitionViewAnyDatabaseViewServerStateExternalAccessAssemblyUnsafeAssemblyToDatabasePermissionSetValueEnumToObjectPermissionSetValueEnumToServerPermissionSetValueEnumm_listObjectsProcessStatementBuilderBitArraym_storageget_Storageset_Storageget_NumberOfElementsSetBitAtGetBitAtSetValueFitsMaskHasCommonBitsStorageNumberOfElementsm_dtEventsGetEventsForAllRowsGetTriggerEventsDatabaseDdlTriggerEventOffsetFromEventStringServerDdlTriggerEventOffsetFromEventStringConvertToValidVersionget_DisplayNameDisplayNameITypeDescriptorContextCanConvertFromLocalizedStringToEnumValueConvertFromEnumValueToLocStringConvertToget_Cultureset_Cultureget_IncorectVersionTagget_NullVersionOnLoadingCfgFileget_EnumObjectTagNotFoundget_InvalidConnectionTypeget_OnlyPathOrFullNameget_DatabaseNameMustBeSpecifiedget_UnknownOperatorget_TooManyDbLevelsget_InvalidConfigurationFileget_NotDbObjectget_NotSingleDbget_NoClassNamePostProcessget_SqlServer90Nameget_SqlServer80Nameget_SmoSQLCLRUnAvailableget_Executingget_WaitingForWorkerThreadget_BetweenRetriesget_Idleget_Suspendedget_WaitingForStepToFinishget_PerformingCompletionActionget_Unknownget_rmFullget_rmBulkLoggedget_rmSimpleget_msNoneget_msSuspendedget_msDisconnectedget_msSynchronizingget_msPendingFailoverget_msSynchronizedFailedToLoadResFileUnsupportedTypeDepDiscoveryQueryNotSupportedPostProcessFailedToLoadAssemblyFailedToCreateUrnPropMustBeSpecifiedInvalidUrnForDependsCouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersionInvalidSqlServerDatabaseNameMustBeSpecifiedinTheUrnCouldNotGetInfoFromDependencyRowCultureIncorectVersionTagNullVersionOnLoadingCfgFileEnumObjectTagNotFoundInvalidConnectionTypeOnlyPathOrFullNameDatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevelsInvalidConfigurationFileNotDbObjectNotSingleDbNoClassNamePostProcessSqlServer90NameSqlServer80NameSmoSQLCLRUnAvailablermFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedSystem.ResourcesResourceManagerresourceManager_cultureAddRoleMemberAddServerRoleMemberAddSignatureAddSignatureSchemaObjectAlterApplicationRoleAlterAssemblyAlterAsymmetricKeyAlterAuthorizationDatabaseAlterAuthorizationServerAlterBrokerPriorityAlterCertificateAlterCredentialAlterCryptographicProviderAlterDatabaseAlterDatabaseAuditSpecificationAlterDatabaseEncryptionKeyAlterEndpointAlterEventSessionAlterExtendedPropertyAlterFulltextCatalogAlterFulltextIndexAlterFulltextStoplistAlterFunctionAlterIndexAlterInstanceAlterLinkedServerAlterLoginAlterMasterKeyAlterMessageAlterMessageTypeAlterPartitionFunctionAlterPartitionSchemeAlterPlanGuideAlterProcedureAlterQueueAlterRemoteServerAlterRemoteServiceBindingAlterResourceGovernorConfigAlterResourcePoolAlterRoleAlterRouteAlterSchemaAlterServerAuditAlterServerAuditSpecificationAlterServiceAlterServiceMasterKeyAlterSymmetricKeyAlterTableAlterTriggerAlterUserAlterViewAlterWorkloadGroupAlterXmlSchemaCollectionBindDefaultBindRuleCreateApplicationRoleCreateBrokerPriorityCreateCredentialCreateCryptographicProviderCreateDatabaseAuditSpecificationCreateDatabaseEncryptionKeyCreateEventNotificationCreateEventSessionCreateExtendedProcedureCreateExtendedPropertyCreateFulltextIndexCreateFulltextStoplistCreateIndexCreateLinkedServerCreateLinkedServerLoginCreateLoginCreateMasterKeyCreateMessageCreatePartitionFunctionCreatePartitionSchemeCreatePlanGuideCreateRemoteServerCreateResourcePoolCreateServerAuditCreateServerAuditSpecificationCreateSpatialIndexCreateStatisticsCreateTriggerCreateUserCreateWorkloadGroupCreateXmlIndexDenyDatabaseDenyServerDropApplicationRoleDropAssemblyDropAsymmetricKeyDropBrokerPriorityDropCertificateDropContractDropCredentialDropCryptographicProviderDropDatabaseDropDatabaseAuditSpecificationDropDatabaseEncryptionKeyDropDefaultDropEndpointDropEventNotificationDropEventSessionDropExtendedProcedureDropExtendedPropertyDropFulltextCatalogDropFulltextIndexDropFulltextStoplistDropFunctionDropIndexDropLinkedServerDropLinkedServerLoginDropLoginDropMasterKeyDropMessageDropMessageTypeDropPartitionFunctionDropPartitionSchemeDropPlanGuideDropProcedureDropQueueDropRemoteServerDropRemoteServiceBindingDropResourcePoolDropRoleDropRoleMemberDropRouteDropRuleDropSchemaDropServerAuditDropServerAuditSpecificationDropServerRoleMemberDropServiceDropSignatureDropSignatureSchemaObjectDropStatisticsDropSymmetricKeyDropSynonymDropTableDropTriggerDropTypeDropUserDropViewDropWorkloadGroupDropXmlSchemaCollectionGrantDatabaseGrantServerLogonRenameRevokeDatabaseRevokeServerUnbindDefaultUnbindRuleUpdateStatisticsop_BitwiseOrBitwiseOrget_AddRoleMemberget_AddServerRoleMemberget_AddSignatureget_AddSignatureSchemaObjectget_AlterApplicationRoleget_AlterAssemblyget_AlterAsymmetricKeyget_AlterAuthorizationDatabaseget_AlterAuthorizationServerget_AlterBrokerPriorityget_AlterCertificateget_AlterCredentialget_AlterCryptographicProviderget_AlterDatabaseget_AlterDatabaseAuditSpecificationget_AlterDatabaseEncryptionKeyget_AlterEndpointget_AlterEventSessionget_AlterExtendedPropertyget_AlterFulltextCatalogget_AlterFulltextIndexget_AlterFulltextStoplistget_AlterFunctionget_AlterIndexget_AlterInstanceget_AlterLinkedServerget_AlterLoginget_AlterMasterKeyget_AlterMessageget_AlterMessageTypeget_AlterPartitionFunctionget_AlterPartitionSchemeget_AlterPlanGuideget_AlterProcedureget_AlterQueueget_AlterRemoteServerget_AlterRemoteServiceBindingget_AlterResourceGovernorConfigget_AlterResourcePoolget_AlterRoleget_AlterRouteget_AlterSchemaget_AlterServerAuditget_AlterServerAuditSpecificationget_AlterServiceget_AlterServiceMasterKeyget_AlterSymmetricKeyget_AlterTableget_AlterTriggerget_AlterUserget_AlterViewget_AlterWorkloadGroupget_AlterXmlSchemaCollectionget_BindDefaultget_BindRuleget_CreateApplicationRoleget_CreateAssemblyget_CreateAsymmetricKeyget_CreateBrokerPriorityget_CreateCertificateget_CreateContractget_CreateCredentialget_CreateCryptographicProviderget_CreateDatabaseget_CreateDatabaseAuditSpecificationget_CreateDatabaseEncryptionKeyget_CreateDefaultget_CreateEndpointget_CreateEventNotificationget_CreateEventSessionget_CreateExtendedProcedureget_CreateExtendedPropertyget_CreateFulltextCatalogget_CreateFulltextIndexget_CreateFulltextStoplistget_CreateFunctionget_CreateIndexget_CreateLinkedServerget_CreateLinkedServerLoginget_CreateLoginget_CreateMasterKeyget_CreateMessageget_CreateMessageTypeget_CreatePartitionFunctionget_CreatePartitionSchemeget_CreatePlanGuideget_CreateProcedureget_CreateQueueget_CreateRemoteServerget_CreateRemoteServiceBindingget_CreateResourcePoolget_CreateRoleget_CreateRouteget_CreateRuleget_CreateSchemaget_CreateServerAuditget_CreateServerAuditSpecificationget_CreateServiceget_CreateSpatialIndexget_CreateStatisticsget_CreateSymmetricKeyget_CreateSynonymget_CreateTableget_CreateTriggerget_CreateTypeget_CreateUserget_CreateViewget_CreateWorkloadGroupget_CreateXmlIndexget_CreateXmlSchemaCollectionget_DenyDatabaseget_DenyServerget_DropApplicationRoleget_DropAssemblyget_DropAsymmetricKeyget_DropBrokerPriorityget_DropCertificateget_DropContractget_DropCredentialget_DropCryptographicProviderget_DropDatabaseget_DropDatabaseAuditSpecificationget_DropDatabaseEncryptionKeyget_DropDefaultget_DropEndpointget_DropEventNotificationget_DropEventSessionget_DropExtendedProcedureget_DropExtendedPropertyget_DropFulltextCatalogget_DropFulltextIndexget_DropFulltextStoplistget_DropFunctionget_DropIndexget_DropLinkedServerget_DropLinkedServerLoginget_DropLoginget_DropMasterKeyget_DropMessageget_DropMessageTypeget_DropPartitionFunctionget_DropPartitionSchemeget_DropPlanGuideget_DropProcedureget_DropQueueget_DropRemoteServerget_DropRemoteServiceBindingget_DropResourcePoolget_DropRoleget_DropRoleMemberget_DropRouteget_DropRuleget_DropSchemaget_DropServerAuditget_DropServerAuditSpecificationget_DropServerRoleMemberget_DropServiceget_DropSignatureget_DropSignatureSchemaObjectget_DropStatisticsget_DropSymmetricKeyget_DropSynonymget_DropTableget_DropTriggerget_DropTypeget_DropUserget_DropViewget_DropWorkloadGroupget_DropXmlSchemaCollectionget_GrantDatabaseget_GrantServerget_Logonget_Renameget_RevokeDatabaseget_RevokeServerget_UnbindDefaultget_UnbindRuleget_UpdateStatisticsSetBitResetBitop_SubtractionSubtractdirtyget_Dirtyset_Dirtyset_AddRoleMemberset_AddServerRoleMemberset_AddSignatureset_AddSignatureSchemaObjectset_AlterApplicationRoleset_AlterAssemblyset_AlterAsymmetricKeyset_AlterAuthorizationDatabaseset_AlterAuthorizationServerset_AlterBrokerPriorityset_AlterCertificateset_AlterCredentialset_AlterCryptographicProviderset_AlterDatabaseset_AlterDatabaseAuditSpecificationset_AlterDatabaseEncryptionKeyset_AlterEndpointset_AlterEventSessionset_AlterExtendedPropertyset_AlterFulltextCatalogset_AlterFulltextIndexset_AlterFulltextStoplistset_AlterFunctionset_AlterIndexset_AlterInstanceset_AlterLinkedServerset_AlterLoginset_AlterMasterKeyset_AlterMessageset_AlterMessageTypeset_AlterPartitionFunctionset_AlterPartitionSchemeset_AlterPlanGuideset_AlterProcedureset_AlterQueueset_AlterRemoteServerset_AlterRemoteServiceBindingset_AlterResourceGovernorConfigset_AlterResourcePoolset_AlterRoleset_AlterRouteset_AlterSchemaset_AlterServerAuditset_AlterServerAuditSpecificationset_AlterServiceset_AlterServiceMasterKeyset_AlterSymmetricKeyset_AlterTableset_AlterTriggerset_AlterUserset_AlterViewset_AlterWorkloadGroupset_AlterXmlSchemaCollectionset_BindDefaultset_BindRuleset_CreateApplicationRoleset_CreateAssemblyset_CreateAsymmetricKeyset_CreateBrokerPriorityset_CreateCertificateset_CreateContractset_CreateCredentialset_CreateCryptographicProviderset_CreateDatabaseset_CreateDatabaseAuditSpecificationset_CreateDatabaseEncryptionKeyset_CreateDefaultset_CreateEndpointset_CreateEventNotificationset_CreateEventSessionset_CreateExtendedProcedureset_CreateExtendedPropertyset_CreateFulltextCatalogset_CreateFulltextIndexset_CreateFulltextStoplistset_CreateFunctionset_CreateIndexset_CreateLinkedServerset_CreateLinkedServerLoginset_CreateLoginset_CreateMasterKeyset_CreateMessageset_CreateMessageTypeset_CreatePartitionFunctionset_CreatePartitionSchemeset_CreatePlanGuideset_CreateProcedureset_CreateQueueset_CreateRemoteServerset_CreateRemoteServiceBindingset_CreateResourcePoolset_CreateRoleset_CreateRouteset_CreateRuleset_CreateSchemaset_CreateServerAuditset_CreateServerAuditSpecificationset_CreateServiceset_CreateSpatialIndexset_CreateStatisticsset_CreateSymmetricKeyset_CreateSynonymset_CreateTableset_CreateTriggerset_CreateTypeset_CreateUserset_CreateViewset_CreateWorkloadGroupset_CreateXmlIndexset_CreateXmlSchemaCollectionset_DenyDatabaseset_DenyServerset_DropApplicationRoleset_DropAssemblyset_DropAsymmetricKeyset_DropBrokerPriorityset_DropCertificateset_DropContractset_DropCredentialset_DropCryptographicProviderset_DropDatabaseset_DropDatabaseAuditSpecificationset_DropDatabaseEncryptionKeyset_DropDefaultset_DropEndpointset_DropEventNotificationset_DropEventSessionset_DropExtendedProcedureset_DropExtendedPropertyset_DropFulltextCatalogset_DropFulltextIndexset_DropFulltextStoplistset_DropFunctionset_DropIndexset_DropLinkedServerset_DropLinkedServerLoginset_DropLoginset_DropMasterKeyset_DropMessageset_DropMessageTypeset_DropPartitionFunctionset_DropPartitionSchemeset_DropPlanGuideset_DropProcedureset_DropQueueset_DropRemoteServerset_DropRemoteServiceBindingset_DropResourcePoolset_DropRoleset_DropRoleMemberset_DropRouteset_DropRuleset_DropSchemaset_DropServerAuditset_DropServerAuditSpecificationset_DropServerRoleMemberset_DropServiceset_DropSignatureset_DropSignatureSchemaObjectset_DropStatisticsset_DropSymmetricKeyset_DropSynonymset_DropTableset_DropTriggerset_DropTypeset_DropUserset_DropViewset_DropWorkloadGroupset_DropXmlSchemaCollectionset_GrantDatabaseset_GrantServerset_Logonset_Renameset_RevokeDatabaseset_RevokeServerset_UnbindDefaultset_UnbindRuleset_UpdateStatisticsddlauthorizationservereventseventsget_DdlAuthorizationServerEventsEventsset_DdlAuthorizationServerEventsEventsddlcredentialeventseventsget_DdlCredentialEventsEventsset_DdlCredentialEventsEventsddlcryptographicprovidereventseventsget_DdlCryptographicProviderEventsEventsset_DdlCryptographicProviderEventsEventsddldatabaseeventseventsget_DdlDatabaseEventsEventsset_DdlDatabaseEventsEventsddlendpointeventseventsget_DdlEndpointEventsEventsset_DdlEndpointEventsEventsddleventsessioneventseventsget_DdlEventSessionEventsEventsset_DdlEventSessionEventsEventsddlextendedprocedureeventseventsget_DdlExtendedProcedureEventsEventsset_DdlExtendedProcedureEventsEventsddlgdrservereventseventsget_DdlGdrServerEventsEventsset_DdlGdrServerEventsEventsddllinkedservereventseventsget_DdlLinkedServerEventsEventsset_DdlLinkedServerEventsEventsddllinkedserverlogineventseventsget_DdlLinkedServerLoginEventsEventsset_DdlLinkedServerLoginEventsEventsddllogineventseventsget_DdlLoginEventsEventsset_DdlLoginEventsEventsddlmessageeventseventsget_DdlMessageEventsEventsset_DdlMessageEventsEventsddlremoteservereventseventsget_DdlRemoteServerEventsEventsset_DdlRemoteServerEventsEventsddlresourcegovernoreventseventsget_DdlResourceGovernorEventsEventsset_DdlResourceGovernorEventsEventsddlworkloadgroupeventsget_DdlWorkloadGroupEventsset_DdlWorkloadGroupEventsddlresourcepooleventsget_DdlResourcePoolEventsset_DdlResourcePoolEventsddlserverauditeventseventsget_DdlServerAuditEventsEventsset_DdlServerAuditEventsEventsddlserverauditspecificationeventseventsget_DdlServerAuditSpecificationEventsEventsset_DdlServerAuditSpecificationEventsEventsddlserverleveleventseventsget_DdlServerLevelEventsEventsset_DdlServerLevelEventsEventsddlserversecurityeventseventsget_DdlServerSecurityEventsEventsset_DdlServerSecurityEventsEventsddlservicemasterkeyeventseventsget_DdlServiceMasterKeyEventsEventsset_DdlServiceMasterKeyEventsEventsDirtyDdlAuthorizationServerEventsEventsDdlCredentialEventsEventsDdlCryptographicProviderEventsEventsDdlDatabaseEventsEventsDdlEndpointEventsEventsDdlEventSessionEventsEventsDdlExtendedProcedureEventsEventsDdlGdrServerEventsEventsDdlLinkedServerEventsEventsDdlLinkedServerLoginEventsEventsDdlLoginEventsEventsDdlMessageEventsEventsDdlRemoteServerEventsEventsDdlResourceGovernorEventsEventsDdlWorkloadGroupEventsDdlResourcePoolEventsDdlServerAuditEventsEventsDdlServerAuditSpecificationEventsEventsDdlServerLevelEventsEventsDdlServerSecurityEventsEventsDdlServiceMasterKeyEventsEventsddlapplicationroleeventseventsget_DdlApplicationRoleEventsEventsset_DdlApplicationRoleEventsEventsddlassemblyeventseventsget_DdlAssemblyEventsEventsset_DdlAssemblyEventsEventsddlasymmetrickeyeventseventsget_DdlAsymmetricKeyEventsEventsset_DdlAsymmetricKeyEventsEventsddlauthorizationdatabaseeventseventsget_DdlAuthorizationDatabaseEventsEventsset_DdlAuthorizationDatabaseEventsEventsddlremoteservicebindingeventseventsget_DdlRemoteServiceBindingEventsEventsset_DdlRemoteServiceBindingEventsEventsddlcertificateeventseventsget_DdlCertificateEventsEventsset_DdlCertificateEventsEventsddlcontracteventseventsget_DdlContractEventsEventsset_DdlContractEventsEventsddlcryptosignatureeventseventsget_DdlCryptoSignatureEventsEventsset_DdlCryptoSignatureEventsEventsddldatabaseleveleventseventsget_DdlDatabaseLevelEventsEventsset_DdlDatabaseLevelEventsEventsddldatabaseauditspecificationeventseventsget_DdlDatabaseAuditSpecificationEventsEventsset_DdlDatabaseAuditSpecificationEventsEventsddlmasterkeyeventseventsget_DdlMasterKeyEventsEventsset_DdlMasterKeyEventsEventsddldatabasesecurityeventseventsget_DdlDatabaseSecurityEventsEventsset_DdlDatabaseSecurityEventsEventsddldefaulteventseventsget_DdlDefaultEventsEventsset_DdlDefaultEventsEventsddldatabaseencryptionkeyeventseventsget_DdlDatabaseEncryptionKeyEventsEventsset_DdlDatabaseEncryptionKeyEventsEventsddleventnotificationeventseventsget_DdlEventNotificationEventsEventsset_DdlEventNotificationEventsEventsddlextendedpropertyeventseventsget_DdlExtendedPropertyEventsEventsset_DdlExtendedPropertyEventsEventsddlfulltextcatalogeventseventsget_DdlFulltextCatalogEventsEventsset_DdlFulltextCatalogEventsEventsddlfulltextstoplisteventseventsget_DdlFulltextStoplistEventsEventsset_DdlFulltextStoplistEventsEventsddlfunctioneventseventsget_DdlFunctionEventsEventsset_DdlFunctionEventsEventsddlgdrdatabaseeventseventsget_DdlGdrDatabaseEventsEventsset_DdlGdrDatabaseEventsEventsddlindexeventseventsget_DdlIndexEventsEventsset_DdlIndexEventsEventsddlmessagetypeeventseventsget_DdlMessageTypeEventsEventsset_DdlMessageTypeEventsEventsddlsymmetrickeyeventseventsget_DdlSymmetricKeyEventsEventsset_DdlSymmetricKeyEventsEventsddlpartitioneventseventsget_DdlPartitionEventsEventsset_DdlPartitionEventsEventsddlplanguideeventseventsget_DdlPlanGuideEventsEventsset_DdlPlanGuideEventsEventsddlbrokerpriorityeventseventsget_DdlBrokerPriorityEventsEventsset_DdlBrokerPriorityEventsEventsddlpartitionfunctioneventseventsget_DdlPartitionFunctionEventsEventsset_DdlPartitionFunctionEventsEventsddlpartitionschemeeventseventsget_DdlPartitionSchemeEventsEventsset_DdlPartitionSchemeEventsEventsddlqueueeventseventsget_DdlQueueEventsEventsset_DdlQueueEventsEventsddlroleeventseventsget_DdlRoleEventsEventsset_DdlRoleEventsEventsddlrouteeventseventsget_DdlRouteEventsEventsset_DdlRouteEventsEventsddlruleeventseventsget_DdlRuleEventsEventsset_DdlRuleEventsEventsddlschemaeventseventsget_DdlSchemaEventsEventsset_DdlSchemaEventsEventsddlserviceeventseventsget_DdlServiceEventsEventsset_DdlServiceEventsEventsddlssbeventseventsget_DdlSsbEventsEventsset_DdlSsbEventsEventsddlstatisticseventseventsget_DdlStatisticsEventsEventsset_DdlStatisticsEventsEventsddlprocedureeventseventsget_DdlProcedureEventsEventsset_DdlProcedureEventsEventsddlsynonymeventseventsget_DdlSynonymEventsEventsset_DdlSynonymEventsEventsddltableeventseventsget_DdlTableEventsEventsset_DdlTableEventsEventsddltablevieweventseventsget_DdlTableViewEventsEventsset_DdlTableViewEventsEventsddltriggereventseventsget_DdlTriggerEventsEventsset_DdlTriggerEventsEventsddltypeeventseventsget_DdlTypeEventsEventsset_DdlTypeEventsEventsddlusereventseventsget_DdlUserEventsEventsset_DdlUserEventsEventsddlvieweventseventsget_DdlViewEventsEventsset_DdlViewEventsEventsddlxmlschemacollectioneventseventsget_DdlXmlSchemaCollectionEventsEventsset_DdlXmlSchemaCollectionEventsEventsDdlApplicationRoleEventsEventsDdlAssemblyEventsEventsDdlAsymmetricKeyEventsEventsDdlAuthorizationDatabaseEventsEventsDdlRemoteServiceBindingEventsEventsDdlCertificateEventsEventsDdlContractEventsEventsDdlCryptoSignatureEventsEventsDdlDatabaseLevelEventsEventsDdlDatabaseAuditSpecificationEventsEventsDdlMasterKeyEventsEventsDdlDatabaseSecurityEventsEventsDdlDefaultEventsEventsDdlDatabaseEncryptionKeyEventsEventsDdlEventNotificationEventsEventsDdlExtendedPropertyEventsEventsDdlFulltextCatalogEventsEventsDdlFulltextStoplistEventsEventsDdlFunctionEventsEventsDdlGdrDatabaseEventsEventsDdlIndexEventsEventsDdlMessageTypeEventsEventsDdlSymmetricKeyEventsEventsDdlPartitionEventsEventsDdlPlanGuideEventsEventsDdlBrokerPriorityEventsEventsDdlPartitionFunctionEventsEventsDdlPartitionSchemeEventsEventsDdlQueueEventsEventsDdlRoleEventsEventsDdlRouteEventsEventsDdlRuleEventsEventsDdlSchemaEventsEventsDdlServiceEventsEventsDdlSsbEventsEventsDdlStatisticsEventsEventsDdlProcedureEventsEventsDdlSynonymEventsEventsDdlTableEventsEventsDdlTableViewEventsEventsDdlTriggerEventsEventsDdlTypeEventsEventsDdlUserEventsEventsDdlViewEventsEventsDdlXmlSchemaCollectionEventsEventsAssemblyInformationalVersionAttributeAssemblyFileVersionAttributeAssemblyVersionAttributeAssemblyTrademarkAttributeAssemblyCopyrightAttributeAssemblyProductAttributeAssemblyCompanyAttributeSqlClientPermissionAttributeSystem.Security.PermissionsSecurityActionAssemblyKeyNameAttributeNeutralResourcesLanguageAttributeCLSCompliantAttributeSystem.Runtime.InteropServicesComVisibleAttributeAssemblyCultureAttributeAssemblyConfigurationAttributeAssemblyDescriptionAttributeAssemblyTitleAttributeSystem.Runtime.CompilerServicesInternalsVisibleToAttributeSystem.DiagnosticsDebuggableAttributeDebuggingModesCompilationRelaxationsAttributeRuntimeCompatibilityAttributeMicrosoft.SqlServer.SqlEnumDefaultMemberAttributeArgumentNullExceptionStringToCharArrayAppendCharsecureStringbstrIntPtrZeroMarshalPtrToStringAutoindexget_CharsstrAstrBignoreCasecomparisonTypecultureInfoindexAindexBobjotherargsParamArrayAttributevalueformatargumentsformatProviderstartIndexcountanyOfseparatorArgumentOutOfRangeExceptionAppendtotalWidthpaddingCharoldCharnewCharoldValuenewValueoptionsculturearraySecureStringToBSTRSecurityPermissionSecurityPermissionFlagCodeAccessPermissionAssertPtrToStringBSTRZeroFreeBSTRtrimCharssqlSecureStringget_IsNullget_OrdinalIComparerurnset_Urnget_UrnfieldusageGetPropertyproptriggeredPropertiesRequestget_ResultTypeoverrideFlagssrget_ParentPropertiesRequestsset_FieldsArrayCopyToPropertyAliasget_PropertyAliasset_PropertyAliasget_OrderByListset_OrderByListset_ParentPropertiesRequestsRequestFieldsTypesset_RequestFieldsTypesset_ResultTypelftlinkFieldserParentFilterDecoderFilterNodeGetExecutingAssemblyqueryresultIDictionaryEnumeratorDictionaryEntryget_KeyConnectionManagerget_ServerVersionget_MajorsqlresultresultTypeExceptionget_InnerExceptionSqlExceptionget_Classget_Stateget_NumbersqlconnectionInfosbget_InvariantCultureset_LocaleDataTableCollectionget_TablesResultTypeNotSupportedEnumeratorExceptionconstantValueQueryParameterizationModeget_ParameterizationModelinkfieldsGetPropertiesStringEnumeratorEnumeratorProcessfieldNameerChildrenbAcrossDatabasesget_DirdirbHiddenFieldget_FixedPropertiesFilterNodeConstantObjectTypeget_ObjTypeget_ValueAsStringciblockfileverdatabaseEngineTypeassemblyObjectaliasrequestedFieldsstoreroAfterCreationxrdassemblyHashtableset_Itemset_ReadOnlyAfterCreationContainsKeyset_UsagexriresInt32serParentGetFixedStringPropertyDataColumnCollectionget_ColumnsGetTypeDataColumnNewRowget_Rowsinit_dataXmlDocumentLoadXmlXmlElementget_DocumentElementXmlNodeXmlAttributeCollectionget_AttributesXmlAttributeget_ItemOfset_FilterconnsdelimStartdelimEnddelimElemsorderByValueGetRangeICollectionInsertRangeAddRangesopbTriggeredset_LengthtableNamesqlCreatebFirstbUseAliassOrderByconIsNullOrEmptyGetDatabaseConnectionget_SqlExecutionModesset_SqlExecutionModesget_IsOpenSqlConnectionInfoWithConnectionget_ServerConnectionSqlConnectionInfoSqlConnectionSqlDirectConnectionget_SqlConnectionInternalEnumeratorExceptionadd_InfoMessagesendereremove_InfoMessageget_SqlConnectionObjectSystem.Data.CommonDbConnectionOpenExecutionTypesExecuteNonQuerycommandOutAttributeExecuteReaderrmServerInformationRuntimeTypeHandleGetTypeFromHandleIsDefinedTypeConverterAttributeFlagsAttributeComputeFixedPropertiesxmlReaderversionserverAliasXmlUtilitySelectNextElementSelectNextElementOnLevelelemNameXmlReaderParseget_Minorget_BuildNumberop_LessThanSelectNextSiblingIsElementfieldsCharget_IsEmptyElementXmlNodeTypeget_NodeTypeastrFileMicrosoft.SqlServer.SqlClrProviderMicrosoft.SqlServer.Smo.UnSafeInternalsManagementUtilLoadResourceFromAssemblyInvalidConfigurationFileEnumeratorExceptionset_ProhibitDtdInvalidVersionEnumeratorExceptionBooleanInt16strDBType{5CC0169F-DF8E-4C01-BF56-037CDDB54529}CompilerGeneratedAttributeSystem.Collections.GenericDictionary`2$$method0x6000185-1TryGetValuedsescapeCharacterassemblyNameget_FullNameAssemblyNameSystem.Security.PolicyEvidenceBindingFlagsBinderCreateInstanceescapedValuestartEscapeCharescapeCharpartSeperatorpatternxrmplienumeratorxrplxrpxrslistset_Expensiveset_ReadOnlyset_ExtendedTypeset_KeyIndexset_PropertyModeoisTriggeredxrcsxrsplreqUserget_RequestFieldsTypesreqobget_Dataset_DataInternalDataCollectionBasedbsdb1db2get_NowMinValueTimeSpanget_TotalMillisecondsDoubleGetKeyexprxrppasemblyget_KeysIEnumerableQueryNotSupportedEnumeratorExceptiontriggeredFieldstriggeredColumnsAliasNameLookupcolobjectIdentifiercolumnNamedpsObjectIdentifierRegexOptionssKeytextbQIGroupCollectionget_GroupsGroupget_SuccessCaptureNextMatchsDatabasenumberDBNullsParamNameoDateoTimesqlCodepermTypebWithSchematentativeParent$$method0x6000255-1SqlErrorCollectionget_ErrorsSqlErrorget_Message$$method0x600025e-1Int64System.NetIPAddress$$method0x6000264-1$$method0x6000274-1sFullNameGetDirectoryNameArgumentExceptionmaxFileSizeConnectionFailureExceptionnopathInvalidArgumentException$$method0x60002ab-1get_ValuesrdMicrosoft.SqlServer.ServerSqlContextget_IsAvailableget_UrnsGetNameForTypeGetAttributeAppendLineget_ParentDependenciesStreamReaderTextReaderReadToEndcEscget_InvariantCultureIgnoreCaseAppendFormatDependencyset_IsSchemaBoundget_LinksReverserowforParentInvalidCastExceptionget_CaptiondeferredLinkidkxrrpscollationexecSqlComponentDbCommandCancelDbDataReaderparentPropertiespostProcessListget_IsEnumToObjectIConvertibleget_IsPrimitiveget_CurrentCultureToTypeConstructorInfoCallingConventionsParameterModifierGetConstructorInvokeMethodInfoGetMethodMethodBaseRemoveAtMarshalByValueComponentidxBytefieldOffsetbufferbufferoffsetfieldoffsetget_DataTypevaluesStructLayoutAttributeLayoutKindmuseQuotedIdentifierheaderInfoget_IndexobjectTextddlText$$method0x60002f9-1$$method0x60002fa-1$$method0x60002fb-1sereventSetBaseOrNotAndmaskoptionsCompareevtdesc$$method0x600031a-1$$method0x600031d-1System.Data.SqlSqlDataSourceEnumeratorget_InstanceDbDataSourceEnumeratorGetDataSourcesFilterNodeFunctionget_FunctionTypeEnvironmentget_MachineNamemajorminorbuildrevisionXmlNodeListget_ChildNodesAttributeUsageAttributeAttributeTargetscontextenumTypeMemberInfoGetMembersGetCustomAttributesenumMemberNamedestinationTypefileNameobjTypesuppListpropListobjCodeobjNamesectionproductNamerowInformationkeyarg0arg1Moduleget_Moduleget_AssemblyeventValueeventLefteventRighteventSetanEventeventsstoragePhysicalPartition.xmlMicrosoft.SqlServer.Management.Smo.SqlEnum.StringSqlEnumerator.resourcesDatabase.xmlFileGroup.xmlFile.xmlLogFile.xmlAudit.xmlServerAuditSpecification.xmlServerAuditSpecificationDetail.xmlDatabaseAuditSpecification.xmlDatabaseAuditSpecificationDetail.xmlServerRole.xmlLogin.xmlDatabaseMappings.xmlUser.xmlDatabaseRole.xmlApplicationRole.xmlFixedDrive.xmlRemoteDrive.xmlRemovableDrive.xmlCdromDrive.xmlDrive.xmlDiskFile.xmlLanguage.xmlLinkedServer.xmltable.xmlView.xmlStoredProcedure.xmlLinkedServerLogin.xmlLinkedServerCatalog.xmlLinkedServerTable.xmlLinkedServerView.xmlMember.xmlJobServer.xmlIndex.xmlIndexedColumn.xmlJobStep.xmlJobStepOutputLog.xmlagent_jobschedule.xmlSchedule.xmlSharedSchedule.xmlPrimaryFile.xmlOLEDBProvider.xmlOLEDBProvProp.xmlPrimaryChildren.xmlCheck.xmlTrigger.xmlUDF.xmlColumn.xmlOrderColumn.xmlJob.xmlAditionalParameters.xmlDatabaseRoleMember.xmlNTGroup.xmlNTLogin.xmlRule.xmlRuleColumn.xmlRuleDataType.xmlConfiguration.xmlAffinityInfo.xmlDefault.xmlUddt.xmlUserDefinedTableType.xmlForeignKey.xmlUDFParams.xmlBoundColumn.xmlConnection.xmlsdt.xmlBackupDevice.xmlXStoredProcedure.xmlDefaultColumn.xmlDefaultDataType.xmlinc_sql_module_JustText.xmlinc_sql_module.xmlinc_urn_schema.xmlinc_urn.xmlinc_server.xmlinc_ruledef80.xmlinc_objprop_table_view.xmlDefaultConstrain.xmlText.xmlStatistic.xmlCollation.xmlDatabaseLocks.xmlErrorLog.xmlErrorLogText.xmlProcess.xmlLock.xmlTapeDevice.xmlinc_text.xmlinc_DbFile.xmlbackupset.xmlrestorehistory.xmlrestorefile.xmlrestorefilegroup.xmlbackupfile.xmlbackupmediafamily.xmlbackupmediaset.xmlagent_alert.xmlagent_operator.xmlagent_targetserver.xmlagent_alertsystem.xmlagent_targetservergroup.xmlagent_targetservermember.xmlinc_fulltext.xmlagent_jobalert.xmlagent_jobhistory.xmlagent_jobtargetservers.xmlagent_ErrorLog.xmlagent_ErrorLogText.xmlAvailableMedia.xmlStatisticColumn.xmlUserOption.xmlInformation.xmlSettings.xmlFKColumn.xmlComputedText.xmlinc_object.xmlinc_system_object.xmlinc_system_table_view_sp_udf.xmlinc_constraint.xmlPartitionSchemeParameter.xmlPartitionFunction.xmlPartitionFunctionParameter.xmlPartitionFunctionRangeValue.xmlPartitionScheme.xmlPartitionSchemeFileGroup.xmlinc_storage.xmlinc_type.xmlExtendedProperty.xmlinc_shilohExtendedProperty.xmlLevel0ExtendedProperty.xmlLevel1ExtendedProperty.xmlLevel2ExtendedProperty.xmlLevel2IndexExtendedProperty.xmlinc_level2SupportProperties.xmlDbExtendedProperty.xmlinc_type_reference.xmlinc_column_reference.xmlsql_module_link.xmlmixed_module_link.xmlrestore_plan.xmlAlertNotification.xmlOperatorNotification.xmlOperatorJobNotification.xmlSqlAssembly.xmlSqlAssemblyFile.xmlUserDefinedType.xmlUserDefinedAggregate.xmlUserDefinedAggregateParameter.xmlFullTextService.xmlFullTextCatalog.xmlFullTextStopList.xmlSchema.xmlFullTextIndex.xmlFullTextIndexColumn.xmlKatmaiDependency.sqlCloudDependency.sqlYukonDependency.sqlShilohDependency.sqlYukonuserownedobject.xmlYukonuserownedobjectSchema.xmlFullTextLanguage.xmlPerfInfo.xmlAgentPerfInfo.xmlServerActiveDirectory.xmlDatabaseActiveDirectory.xmlColumnPerm.xmldbfixedroleperm.xmlDBPerm.xmlinc_perm.xmlShilohYukonPerm.xmlSrvYukonObjectPerm.xmlSrvYukonPerm.xmlTablePerm.xmlYukonObjectPerm.xmlYukonSchemaObjectPerm.xmlDBObjectPerm.xmlSrvObjectPerm.xmlsysmessage.xmlusermessage.xmlsynonym.xmlinc_IndexFrag.xmlIndexFragFast.xmlIndexFragSampled.xmlIndexFragDetail.xmlinc_urn_message.xmlDatabaseOptions.xmlSPParams.xmlinc_urn_soapmethod.xmlMaintenancePlan.xmlMaintenanceSubPlan.xmlMaintSubPlanLog.xmlMaintSubPlanLogDetail.xmlMaintenancePlanDeprecated.xmlRemoteMaintenancePlan.xmlRemoteSubPlan.xmlRemotePlanLog.xmlRemotePlanLogDetail.xmlLogMarkHistory.xmlProxyAccount.xmlAgentSubsystems.xmlProxyAccountPrincipals.xmlcertificate.xmlOLEDBProviderSetting.xmlfulltext_ErrorLog.xmlfulltext_ErrorLogText.xmlDatabaseMirroringWitnessRole.xmlXmlSchemaCollection.xmlXmlNamespace.xmlXmlType.xmlinc_urn_collate_default.xmlCredential.xmlCryptographicProvider.xmlPlanGuide.xmlMailProfile.xmlMailAccount.xmlConfigurationValue.xmlMail.xmlinc_named_object.xmlDatabaseDdlTrigger.xmlServerDdlTrigger.xmlinc_server_sql_module_link.xmlDatabaseDdlTriggerEvent.xmlinc_ddl_trigger_event.xmlServerDdlTriggerEvent.xmlMailProfileAccounts.xmlMailProfilePrincipals.xmlMailServer.xmlendpoint.xmlsoap_endpoint.xmlinc_urn_single.xmldatabase_mirroring_endpoint.xmlservice_broker_endpoint.xmlvia_endpoint.xmlhttp_endpoint.xmltcp_endpoint.xmlsoap_endpoint_method.xmlsymmetrickey.xmlasymmetrickey.xmltemp_table.xmlparameter.xmludfcolumn.xmlNumberedStoredProcedure.xmlNumberedSPParams.xmlFullTextFile.xmlKeyEncryption.xmlagent_alert_categories.xmlagent_job_categories.xmltransaction.xmlagent_operator_categories.xmlServerProxyAccount.xmlServiceMasterKey.xmlDatabaseMasterKey.xmlMasterKeyEncryption.xmlDatabaseDiagram.xmlMail_ErrorLog.xmlinc_policy_health_state.xmlResourceGovernor.xmlResourcePool.xmlWorkloadGroup.xmlDatabaseEncryptionKey.xmlServer.xml#empty_resultiselect * from #empty_result DROP TABLE #empty_resultParentSelect NType N'{0}' Name{}db_name()[{}].=System.String<d  />db_namexmlassemly last +'/'+ ()or, and, ASC DESC [{0}]{1} AS [{0}]SELECT distinct FROM  WHERE  ORDER BY if  begin  return end  create table ) [{0}] {1} NULL'[{0}] {1}({2}) NULL*drop table qdeclare @Path nvarchar(255) declare @Name nvarchar(255) PathFullName-select @Path = N'{0}' -select @Name = N'{0}' min_majorcloud_min_majorcloud_max_majorcloud_min_minorcloud_max_minorcloud_min_buildcloud_max_buildmax_majormin_minormax_minormin_buildmax_buildversionEnumObject unionsettingspropertiespropertyinclude file aliasfor#ro_after_creation nameread_only access readUrnIDCreateDate Schemareport_typeGMicrosoft.SqlServer.Management.Smo.report_type2 typeexpensive1read_only_after_creationkey_index mode DESIGN DEPLOY cast hidden usagerequest filter ordernotusage table link sizelink_multiplemain_table!aditional_filterdistinctparent_linkfail_condition+request_parent_selectproperty_link prefixpostfixpost_process!orderby_redirectspecial_query field local parentnoexpressionlink_fieldcomputeddefault_value fields join9expression_is_for_table_nameleft_joinclass_name!triggered_fieldsredirect_fields!redirect_orderbydatabase querynvarcharvarcharsysname nchar char ntext textint bigintbit long real floatdatetimedatetime2 datedatetimeoffset timetimespantinyintsmallint!uniqueidentifiernumericdecimal binary imagevarbinarysql_variantSystem.Int32System.Int64System.BooleanSystem.DoubleSystem.DateTime+System.DateTimeOffsetSystem.TimeSpanSystem.ByteSystem.Int16System.GuidSystem.DecimalSystem.Byte[]System.ObjectN'' [] AS ) AND (!LEFT OUTER JOIN INNER JOIN  ON {0}{0}({1})!CAST({0} AS {1}) AND {{{0}}}={{{1}}} use [SchemaPrefix][#unify_temptbl insert into PrimaryFileudeclare @fileName nvarchar(255) select @fileName = N'{0}' PostProcess ,use [{0}] System.DBNull /Text!ObjectIdentifier Text1 ViewTextBodyBodyStartIndex-HasColumnSpecification#TableVariableNameq(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^ ]*)|("(("")|[^"])*")|(//[^ ]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^ ]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))O(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^ ]*)|(//[^ ]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^ ]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\)) delimeq commaval param7select c.definition,convert(bit,OBJECTPROPERTY(c.object_id,N'ExecIsQuotedIdentOn')) from [{0}].sys.sql_modules c where c.object_id = <msparam>{1}</msparam>}select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> and c.number = <msparam>{2}</msparam> order by c.colid1select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> order by c.colidPermission ServerDatabaseRF CRFNSLINDLUP CRTB CRDB CRVW CRPREX BADB CRDF BALO CRRUSServer[@Name='{0}']/Database[@Name='{1}']G/{0}[@Name='{1}' and @Schema='{2}']#/{0}[@Name='{1}']ASSEMBLY SCHEMA UDDTUDTXMLSCHCOLAFC D F PKP PCFNFSFTR SNSQTATRIFTFS U UQV X SqlAssembly'UserDefinedDataTypeUserDefinedType'XmlSchemaCollection)UserDefinedAggregate Check TableDefaultForeignKey IndexStoredProcedure'UserDefinedFunction RuleSynonym5ServiceBroker/ServiceQueueTrigger/ExtendedStoredProcedureBaseSchemaBaseDatabaseBaseServerGUSE [{2}] DBCC SHOWCONTIG({0}, {1})3DBCC SHOWCONTIG({0}, {1})..: PagesExtentsExtentSwitchesScanDensity)LogicalFragmentation'ExtentFragmentation!AverageFreeBytes%AveragePageDensityOexec msdb.dbo.sp_help_job @job_id='{0}'3exec msdb.dbo.sp_help_job-CurrentRunRetryAttempt!CurrentRunStatusCurrentRunStepHasScheduleHasServerHasStepLastRunDateLastRunOutcomeNextRunDate#NextRunScheduleIDJobType+current_retry_attempt1current_execution_status-current_execution_stephas_schedulehas_targethas_steplast_run_datelast_run_time!last_run_outcomenext_run_datenext_run_time)next_run_schedule_id+DBCC SHOW_STATISTICS(, ') WITH STATS_STREAMStats_Streamselect convert(float,low/1024.) from master.dbo.spt_values where number = 1 and type = 'E'IsDbAccessAdmin9is_member(N'db_accessadmin')%IsDbBackupOperator?is_member(N'db_backupoperator')IsDbDatareader7is_member(N'db_datareader')IsDbDatawriter7is_member(N'db_datawriter')IsDbOwner-is_member(N'db_owner')#IsDbSecurityAdmin=is_member(N'db_securityadmin')IsDbDdlAdmin3is_member(N'db_ddladmin')%IsDbDenyDatareader?is_member(N'db_denydatareader')%IsDbDenyDatawriter?is_member(N'db_denydatawriter')DboLoginUserNameuser_name()SpaceAvailable Size DbSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in ( 0, 2, 4 ) )SpaceUsed%SUM(a.total_pages)LogSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in (1, 3))DataSpaceUsageIndexSpaceUsageSUM(CASE WHEN a.type <> 1 THEN a.used_pages WHEN p.index_id < 2 THEN a.data_pages ELSE 0 END)IndexSpaceTotal#SUM(a.used_pages)IsMailHost(select count(1) from sys.services where name ='InternalMailService')DefaultSchema(select default_schema_name from sys.database_principals where name = user_name())Asys.allocation_units AS a INNER JOIN sys.partitions AS p ON (a.type = 2 AND p.partition_id = a.container_id) OR (a.type IN (1,3) AND p.hobt_id = a.container_id)!DefaultFileGroup(select top 1 ds.name from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FG' )3IsManagementDataWarehouse(select count(1) from sys.extended_properties where name = 'Microsoft_DataCollector_MDW_Version')5DefaultFileStreamFileGroup](select case when t1.c1 > 0 then t1.c2 else N'' end from (select top 1 count(*) c1, min(ds.name) c2 from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FD') t1)(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 = 0))(select sum(convert(float,reserved)) from dbo.sysindexes where indid in (0, 1, 255))(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 <> 0))=((select sum(convert(float,dpages)) from dbo.sysindexes where indid < 2) + (select isnull(sum(convert(float,used)), 0) from dbo.sysindexes where indid = 255))(select sum(convert(float,used)) from dbo.sysindexes where indid in (0, 1, 255))(select top 1 fg.groupname from dbo.sysfilegroups as fg where fg.status & 0x10 <> 0)3DatabaseOwnershipChainingscreate table #tmpdbchaining( name sysname , dbc sysname )insert into #tmpdbchaining exec dbo.sp_dboption N'{0}', 'db chaining'  declare @DBChaining bit set @DBChaining = null select @DBChaining = case LOWER(dbc) when 'off' then 0 else 1 end from #tmpdbchaining@DBChaining3drop table #tmpdbchainingPrimaryFilePath9SELECT dtb.collation_name AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.compatibility_level AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', dtb.collation_name) AS bit) AS [CaseSensitive] FROM master.sys.databases AS dtb where name = db_name()SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.cmptlevel AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255))) AS bit) AS [CaseSensitive] FROM master.dbo.sysdatabases AS dtb where name = db_name() CREATE TABLE #tempspace (value BIGINT) IF (OBJECT_ID(N'msdb.sys.sp_getVolumeFreeSpace', N'P')) is null INSERT INTO #tempspace VALUES(-1) ELSE INSERT INTO #tempspace EXEC msdb.sys.sp_getVolumeFreeSpace {0},{1} SELECT TOP 1 value as [freebytes] from #tempspace as [freebytes] DROP TABLE #tempspace freebytesMaximumFileSize'MaximumFileSizeUnit Login OwnerUserType[Select name from sys.sql_logins where sid={0} masterTable/TriggerPartitionScheme#PartitionFunction)UserDefinedTableType!UnresolvedEntityDdlTriggerPlanGuide MASTER!CREATE TABLE #tempdep (objid int NOT NULL, objname sysname NOT NULL, objschema sysname NULL, objdb sysname NOT NULL, objtype smallint NOT NULL) CREATE TABLE #tempdep (objid int NOT NULL, objtype smallint NOT NULL) #BEGIN TRANSACTION Column#DefaultConstraint null+INSERT INTO #tempdep WINSERT INTO #tempdep(objid,objtype) VALUES(%COMMIT TRANSACTION'CloudDependency.sql)ShilohDependency.sql'YukonDependency.sql)KatmaiDependency.sqldeclare @find_referencing_objects int set @find_referencing_objects = {0} USE [master]oSELECT collation_name FROM sys.databases where name={0}SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [collation_name] FROM master.dbo.sysdatabases AS dtb WHERE(dtb.name={0}) _CS_schema_boundrelative_idobject_idobject_typerelative_typerelative_svrobject_svrrelative_dbobject_dbrelative_schemaobject_schemarelative_nameobject_name .mServer[@Name='{0}']/Database[@Name='{1}']/{2}[@ID={3}]SServer/Database[@Name='{0}']/{1}[@ID={2}]UServer[@Name='{0}']/Database[@Name='{1}']/;Server/Database[@Name='{0}']/o{0}[@Name='{1}' and @Schema='{2}']/Trigger[@Name='{3}']!{0}[@Name='{1}']E{0}[@Name='{1}' and @Schema='{2}'])Server[@Name='{0}']/Server/-Database[@Name='{0}']/pschema pname ptypeCIAIKSWSBIN BIN2DECLARE @db_name sysname ,@restore_to_datetime datetime DatabaseNameBackupStartDate3select @db_name = N'{0}' Qselect @restore_to_datetime = GETDATE() Kselect @restore_to_datetime = N'{0}' wMicrosoft.SqlServer.Management.Smo.Internal.SqlSecureStringqMicrosoft.SqlServer.Management.Common.DatabaseEngineType Parse(--[^ ]*)(//[^ ]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)U(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*| \*/)!('(('')|[^'])*)'=(?<quoted_word>"(("")|[^"])*")G(?<braket_word>\[((\]\])|[^\]])*\])(?<dot>\.)M(?<parant_open>\()|(?<parant_close>\))Q(?:(?<param>@[\w_@#][\w\d_$$@#]*)((\s)|()|())*(AS){0,1}))(?<exec>\bEXECUTE\b)/(?<returns>\bRETURNS\b)K(?<returns_table>\bRETURNS\s+TABLE\b)+(?<return>\bRETURN\b))(?<delim1>\bAS\b\s*))(?<delim2>\bBEGIN\b)([ \t]+)+(?<word>[a-zA-Z0-9]+)(?<eol>\n)(?<slcomm>--)(?<reject>.)|i|(?<word>[\w_@#][\w\d_$$@#]*)|(?<number_proc>;[\d]+) wordbraket_wordquoted_wordnumber_procdot create alterTRIGGERONparant_closeparant_open delim1 delim2 execreturnsreturns_table return option check with reject slcommeolAL ALAK ALAR ALAS ALCF ALDA ALDS ALED ALFT ALMT ALRL ALRT ALSB ALSC ALSK ALSM ALSV ALTG ALUS AUTHCLCO CORPCP CRAG CRAK CRAS CRCF CRED CRFT CRMT CRQU CRRL CRRT CRSB CRSC CRSK CRSM CRSN CRSV CRTY CRXS SPLN SUQNTOVW VWDSIMRC VWCT ADBO ALAA ALCD ALCO ALDB ALES ALHE ALLG ALLS ALRS ALSS ALST ALTR COSQ CRDE CRHE CRTE SHDN VWAD VWDB VWSSXAXU UNION /Event)EventTypeDescriptionADD_ROLE_MEMBERADD_SIGNATURE7ADD_SIGNATURE_SCHEMA_OBJECT-ALTER_APPLICATION_ROLEALTER_ASSEMBLY)ALTER_ASYMMETRIC_KEY9ALTER_AUTHORIZATION_DATABASE+ALTER_BROKER_PRIORITY#ALTER_CERTIFICATEEALTER_DATABASE_AUDIT_SPECIFICATION;ALTER_DATABASE_ENCRYPTION_KEY/ALTER_EXTENDED_PROPERTY-ALTER_FULLTEXT_CATALOG)ALTER_FULLTEXT_INDEX/ALTER_FULLTEXT_STOPLISTALTER_FUNCTIONALTER_INDEX!ALTER_MASTER_KEY%ALTER_MESSAGE_TYPE1ALTER_PARTITION_FUNCTION-ALTER_PARTITION_SCHEME!ALTER_PLAN_GUIDEALTER_PROCEDUREALTER_QUEUE9ALTER_REMOTE_SERVICE_BINDINGALTER_ROLEALTER_ROUTEALTER_SCHEMAALTER_SERVICE'ALTER_SYMMETRIC_KEYALTER_TABLEALTER_TRIGGERALTER_USERALTER_VIEW7ALTER_XML_SCHEMA_COLLECTIONBIND_DEFAULTBIND_RULE/CREATE_APPLICATION_ROLECREATE_ASSEMBLY+CREATE_ASYMMETRIC_KEY-CREATE_BROKER_PRIORITY%CREATE_CERTIFICATECREATE_CONTRACTGCREATE_DATABASE_AUDIT_SPECIFICATION=CREATE_DATABASE_ENCRYPTION_KEYCREATE_DEFAULT3CREATE_EVENT_NOTIFICATION1CREATE_EXTENDED_PROPERTY/CREATE_FULLTEXT_CATALOG+CREATE_FULLTEXT_INDEX1CREATE_FULLTEXT_STOPLISTCREATE_FUNCTIONCREATE_INDEX#CREATE_MASTER_KEY'CREATE_MESSAGE_TYPE3CREATE_PARTITION_FUNCTION/CREATE_PARTITION_SCHEME#CREATE_PLAN_GUIDE!CREATE_PROCEDURECREATE_QUEUE;CREATE_REMOTE_SERVICE_BINDINGCREATE_ROLECREATE_ROUTECREATE_RULECREATE_SCHEMACREATE_SERVICE)CREATE_SPATIAL_INDEX#CREATE_STATISTICS)CREATE_SYMMETRIC_KEYCREATE_SYNONYMCREATE_TABLECREATE_TRIGGERCREATE_TYPECREATE_USERCREATE_VIEW!CREATE_XML_INDEX9CREATE_XML_SCHEMA_COLLECTIONDENY_DATABASE+DROP_APPLICATION_ROLEDROP_ASSEMBLY'DROP_ASYMMETRIC_KEY)DROP_BROKER_PRIORITY!DROP_CERTIFICATEDROP_CONTRACTCDROP_DATABASE_AUDIT_SPECIFICATION9DROP_DATABASE_ENCRYPTION_KEYDROP_DEFAULT/DROP_EVENT_NOTIFICATION-DROP_EXTENDED_PROPERTY+DROP_FULLTEXT_CATALOG'DROP_FULLTEXT_INDEX-DROP_FULLTEXT_STOPLISTDROP_FUNCTIONDROP_INDEXDROP_MASTER_KEY#DROP_MESSAGE_TYPE/DROP_PARTITION_FUNCTION+DROP_PARTITION_SCHEMEDROP_PLAN_GUIDEDROP_PROCEDUREDROP_QUEUE7DROP_REMOTE_SERVICE_BINDINGDROP_ROLE!DROP_ROLE_MEMBERDROP_ROUTEDROP_RULEDROP_SCHEMADROP_SERVICEDROP_SIGNATURE9DROP_SIGNATURE_SCHEMA_OBJECTDROP_STATISTICS%DROP_SYMMETRIC_KEYDROP_SYNONYMDROP_TABLEDROP_TRIGGERDROP_TYPEDROP_USERDROP_VIEW5DROP_XML_SCHEMA_COLLECTIONGRANT_DATABASE RENAMEREVOKE_DATABASEUNBIND_DEFAULTUNBIND_RULE#UPDATE_STATISTICS-ADD_SERVER_ROLE_MEMBER5ALTER_AUTHORIZATION_SERVER!ALTER_CREDENTIAL9ALTER_CRYPTOGRAPHIC_PROVIDERALTER_DATABASEALTER_ENDPOINT'ALTER_EVENT_SESSIONALTER_INSTANCE'ALTER_LINKED_SERVERALTER_LOGINALTER_MESSAGE'ALTER_REMOTE_SERVER=ALTER_RESOURCE_GOVERNOR_CONFIG'ALTER_RESOURCE_POOL%ALTER_SERVER_AUDITAALTER_SERVER_AUDIT_SPECIFICATION1ALTER_SERVICE_MASTER_KEY)ALTER_WORKLOAD_GROUP#CREATE_CREDENTIAL;CREATE_CRYPTOGRAPHIC_PROVIDERCREATE_DATABASECREATE_ENDPOINT)CREATE_EVENT_SESSION3CREATE_EXTENDED_PROCEDURE)CREATE_LINKED_SERVER5CREATE_LINKED_SERVER_LOGINCREATE_LOGINCREATE_MESSAGE)CREATE_REMOTE_SERVER)CREATE_RESOURCE_POOL'CREATE_SERVER_AUDITCCREATE_SERVER_AUDIT_SPECIFICATION+CREATE_WORKLOAD_GROUPDENY_SERVERDROP_CREDENTIAL7DROP_CRYPTOGRAPHIC_PROVIDERDROP_DATABASEDROP_ENDPOINT%DROP_EVENT_SESSION/DROP_EXTENDED_PROCEDURE%DROP_LINKED_SERVER1DROP_LINKED_SERVER_LOGINDROP_LOGINDROP_MESSAGE%DROP_REMOTE_SERVER%DROP_RESOURCE_POOL#DROP_SERVER_AUDIT?DROP_SERVER_AUDIT_SPECIFICATION/DROP_SERVER_ROLE_MEMBER'DROP_WORKLOAD_GROUPGRANT_SERVER LOGONREVOKE_SERVERInstanceIsClusteredVersionIsLocalInstanceNameMSSQLSERVERServerName\No%IncorectVersionTag7NullVersionOnLoadingCfgFile+EnumObjectTagNotFound+InvalidConnectionType%OnlyPathOrFullName7DatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevels1InvalidConfigurationFileNotDbObjectNotSingleDb-NoClassNamePostProcessSqlServer90NameSqlServer80Name)SmoSQLCLRUnAvailableExecuting-WaitingForWorkerThreadBetweenRetries IdleSuspended-WaitingForStepToFinish5PerformingCompletionActionUnknown rmFullrmBulkLoggedrmSimple msNonemsSuspendedmsDisconnectedmsSynchronizing#msPendingFailovermsSynchronized'FailedToLoadResFile7UnsupportedTypeDepDiscovery9QueryNotSupportedPostProcess)FailedToLoadAssembly#FailedToCreateUrn'PropMustBeSpecified)InvalidUrnForDepends-CouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersion!InvalidSqlServerGDatabaseNameMustBeSpecifiedinTheUrnACouldNotGetInfoFromDependencyRow: \LV|ݵE)z\V4]̀̑Y   Y     ] a   ] a      a  ] ] e                    i i i i  a Y  YYmm((lqu       q l l   y  |}  |    9 <u = ==      u ((((q(l(((((          u        |(u(         u  ((,   $(c,048@<DRGW@dDH LPTX\`dhlptx<AFPZ| >   e,-i  $(,048<@?DH LPTX\`dhlptx|!"#$%&'()*      (((  $ ($(   ( ( (   } 8(((}(8 ( P , D L T X \ `(((P(,(D(L(T(X(\(` 0(0 4(4 @(@< <(< =     8  ( h   h 1(h1 1(x D   $ lD l l$       H lL lT lP ( 0 9      ( < X  lX9 q    ( ( ( ( ((9 ( ((--[^ ]*)(//[^ ]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/),(N{0,1}'(('')|[^'])*)' ("(("")|[^"])*")*(\[((\]\])|[^\]])*\]) ([\w_][\w;\d_]*)((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1})(0x[0-9a-f]+)B(?<val>(((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))h(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))(?<comma>,)(\([\d, ]*\))(?<eq>=)<(?<delim>\b((AS)|(RETURNS))\b)Z(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^ ]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})p(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^ ]*)|("(("")|[^"])*")|(//[^ ]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^ ]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))N(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^ ]*)|(//[^ ]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^ ]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[ ])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))      ( ( (   ((  ( (  (       q         y  y yq , 0, ,   uq             E            ((8(?<word>[\w_@#][\w\d_$$@#]*),(?<number_proc>;[\d]+)8 4 4@=+,-./0123456789:;DH@DH    X X  X X(          a   aaaa$IncorectVersionTag6NullVersionOnLoadingCfgFile*EnumObjectTagNotFound*InvalidConnectionType$OnlyPathOrFullName6DatabaseNameMustBeSpecified&FailedToLoadResFile6UnsupportedTypeDepDiscovery8QueryNotSupportedPostProcess(FailedToLoadAssembly"FailedToCreateUrnUnknownOperator&PropMustBeSpecified(InvalidUrnForDependsTooManyDbLevels,CouldNotInstantiateObjNotDerivedFromUnknownType0InvalidConfigurationFileMissingSectionNotDbObjectNotSingleDb,NoClassNamePostProcessInvalidVersion InvalidSqlServerFDatabaseNameMustBeSpecifiedinTheUrn@CouldNotGetInfoFromDependencyRowSqlServer90NameSqlServer80Name(SmoSQLCLRUnAvailableExecuting,WaitingForWorkerThreadBetweenRetriesIdleSuspended,WaitingForStepToFinish4PerformingCompletionActionUnknown rmFullrmBulkLoggedrmSimple msNonemsSuspendedmsDisconnectedmsSynchronizing"msPendingFailovermsSynchronizedaBCEHIJKLMNOQSTUVXY[\]^_`abfghjklmnopqrstuvwxyz{|}~   (        (      5 a$$RSA1''6n_1:fl/y2}/R4H<=\]Ǽ(k,Q\$+Au2IRmRo{l؂O1 ˢ#V{-Pb왹J|};( Item  ]a  ] a a ]]e        i i i iY a  Ymm  y 5} 1   }|| |1 hh|111            |1           a  1 5} hh5|115 |1  =9 9      } 5<$(P,DLTXh\` |1 e|tt=     =9     |1  1 |1 u     |1 |1            u !   u (  ()-)>9Microsoft.SqlServer.Management.Smo.RecoveryModelConverter rmSimple rmBulkLogged rmFull@;Microsoft.SqlServer.Management.Smo.MirroringStatusConverter msNone msSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedC>Microsoft.SqlServer.Management.Smo.JobExecutionStatusConverter ExecutingWaitingForWorkerThreadBetweenRetries Idle SuspendedWaitingForStepToFinishPerformingCompletionAction          E  e ]}aa    e i  mqa  h1 h1   808  1  y  y @1  1 1  y 9      1    y y y     ] u1 e e      1         1 yy 8 yy    0 11   1  19 y!y4  q|1   |1 e mq           4   111  =9  5   &51    1 %&T InheritedT AllowMultiple ) )t))Q) a -   1N , 10.50.1600.1)$10.50.1600.1 ((KJ_RTM).100402-1540 )MHMicrosoft SQL Server is a registered trademark of Microsoft Corporation.)$Microsoft Corp. All rights reserved.Microsoft SQL ServerMicrosoft Corporation en-US_YDBMirroringTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTSMOCLRTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTBckDevTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoWMIEnumTest_ServiceAdvancedProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_WMIEnumTest_Service, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8pjWMIEnumTest_SCProtocolProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8hbWMIEnumTest_SCProtocol, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdWMIEnumTest_SCNetLibInfo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^WMIEnumTest_SAlias, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZWMIEnumTest_MC, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XOLAPEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSTestAll, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8XRPerfTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WSQLEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.ResourceGovernorUITasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736AD6E5F9586BAC2D531EABC3ACC666C2F8EC879FA94F8F7B0327D2FF2ED523448F83C3D5C5DD2DFC7BC99C5286B2C125117BF5CBE242B9D41750732B2BDFFE649C6EFB8E5526D526FDD130095ECDB7BF210809C6CDAD8824FAA9AC0310AC3CBA2AA0523567B2DFA7FE250B30FACBD62D4EC99B94AC47C7D3B28F1F6E4C8Microsoft.VisualStudio.Data.Providers.SqlEverywhere, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293]Wenumbvt4vsd, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]Wenumbvt4sql, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.TestLauncher, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Express.ObjectExplorerReplication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.Express.ConflictViewer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8zMicrosoft.SqlServer.Express.ReplConflictViewer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.NewSubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Express.Replication.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.Express.ReplicationDialog, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.Express.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Express.Rmo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.Express.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Express.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Express.RegSvrEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.Reports, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Express.SqlToolsVsNativeHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.Express.VSIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.Express.LanguagePackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{Microsoft.SqlServer.Express.SqlWorkbenchProject, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.AppIDPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.Express.ObjectExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Express.SqlEditors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.Express.ConnectionDlg, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.Express.SqlManagerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoMicrosoft.SqlServer.Express.SqlMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.Express.ActivityMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.SqlScriptPublishModel, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.SqlScriptingEngine, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.Management.Reports, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.VisualStudio.TeamSystem.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293yMicrosoft.VisualStudio.TeamSystem.Data.Common, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293xrMicrosoft.CompactFramework.Design.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293zMicrosoft.SqlServer.NotificationServices.Rules, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.NotificationServicesEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]DisableDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[CreatePubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.DtsObjectExplorerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8lfMicrosoft.SqlServer.DTEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.DataTransformationServices.Design, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.DataTransformationServices.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.DatatransformationServices.DTSExecUI.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferStoredProceduresTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferStoredProceduresTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.TransferObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.TransferLoginsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferLoginsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferJobsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.TransferJobsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{Microsoft.SqlServer.TransferErrorMessagesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.TransferErrorMessagesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.TransferDatabasesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferDatabasesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.UI.RSUserInterface, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTPROFILER, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8VPXMQE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WXMDocuments, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8b\ObjectExplorerXM, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgUpgradeMaintenancePlanUTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLManager, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ObjectExplorerCore, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ActivityMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[LanguagePackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_SqlWorkbenchProject, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XAppIDPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.SqlTools.VSIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8keObjectExplorerReplication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnObjectExplorerNotificationServices, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZObjectExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^DatabaseMailWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YMSXTSXDialogs, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UManageSSB, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ManageLinkedServer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ManageEndpoints, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icDBMaintenanceProperties, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdDBMaintenancePlanHistory, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.MaintenancePlanWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.MaintenancePlanTasksUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.MaintenancePlanTasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferSqlServerObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferSqlServerObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^CopyDatabaseWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XSqlManagerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YSQLEditors.VS, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLEditors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTDTAShell, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8UODTA, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UDTAClient, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlToolsVSNativeHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YConnectionDlg, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlWorkbench.Interfaces, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSSqlMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\Vsqllogship, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Replication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XNewSubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8gaReplication.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WDBMirroring, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_ConfigureDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ReplicationMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]ReplicationDialog, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8nhMicrosoft.SqlServer.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.VisualStudio.vspManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServerCe.Express.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnMicrosoft.SqlServerCe.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.VisualStudio.vspEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServerCe.Express.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8rlMicrosoft.SqlServerCe.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.VisualStudio.vspServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspWmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspSqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8oiMicrosoft.VisualStudio.vspSmo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.VisualStudio.vspSmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.SmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.VisualStudio.vspSqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.SqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8TWrapNonExceptionThrows.System.Data.SqlClient.SqlClientPermissionAttribute, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089T UnrestrictedtK8>.RSDS Jyi)D +[Microsoft.SqlServer.SqlEnum.pdbD?^? P?_CorDllMainmscoree.dll% .0HX@||4VS_VERSION_INFO2 @2 @?DVarFileInfo$TranslationStringFileInfo000004b0LCompanyNameMicrosoft Corporation,FileDescription l%FileVersion10.50.1600.1 ((KJ_RTM).100402-1540 )` InternalNameMicrosoft.SqlServer.SqlEnum.dllp%LegalCopyrightMicrosoft Corp. All rights reserved.ILegalTrademarksMicrosoft SQL Server is a registered trademark of Microsoft Corporation.h OriginalFilenameMicrosoft.SqlServer.SqlEnum.dllLProductNameMicrosoft SQL Server@ ProductVersion10.50.1600.1< Assembly Version10.0.0.00 p?`0S *H D0@1 0 +0h +7Z0X03 +70% <<<Obsolete>>>0!0 +K,?~qq~ _@10`0L .P\0 +0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority0 070822223102Z 120825070000Z0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Code Signing PCA0"0  *H 0 y}]E941%5IwEqFԌkLRbMIl/$>e# HuEP%+ #A$bEJͳ/"J-|o;99ݽ)f;-2'Hlc\򸔣8P'N0==l9.4. }bxfs Oc,2EJ;PSfQyV>Pn5{$Rf=N+~3nGўJnS00U% 0 +0U0[pir#Q~Mˡr0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority<<>c@0U00Uvp[NQD.Dc0 U0 +{~J&μNtX't*uLxMi|CʇSŸVocDDȚ  )}s9=j8m҈#i 4|.)Bk(q8 ]hͽAkf4|zB{ p֒O8|-=4 b7j#\cZ9`U3; _,˫ 0  *RA^0(ip΀Brv0z0b a>0  *H 0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Code Signing PCA0 091207224029Z 110307224029Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR10UMicrosoft Corporation0"0  *H 0 0ErSkO#=Y@8s&S<B8auM\F^i[s)DdY/]nǫ9eħuꇗ&&v89&+ZT!򗍇)I,?}͖ q B5׸?ݎE }K[vrw#}5]PKGmUTN؁B1U SI0奈|^zZ7i2$00U% 0 +0U8xs2_Uƙt0U0U#0vp[NQD.Dc0DU=0;09753http://crl.microsoft.com/pki/crl/products/CSPCA.crl0H+<0:08+0,http://www.microsoft.com/pki/certs/CSPCA.crt0  *H ( oBvCB$e4uq0r7:pQ q(ps{V4ZrN {DO aun+Z 9`jT;1_,nM*v{Ƈֱ*rTn*ȞobKk=/zw9gj{cI&Bޕ" _s2r6)$ROfH&9iPNl.r!m$H@|t8JO00j O%EXzg0  *H 0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority0 060916010447Z 190915070000Z0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Timestamping PCA0"0  *H 0 7nBJqH>S,2ORȃ>3I1(dPKuǨծipfx'f趷 Y")/@VvmdmJT޿ǀL7VhGv\/}%V[jc|<%M9wt]\؆7,u9 |vlnz>q_*Ob`2҃N+"\hE/Pl%ׅvs6ƕz`3[AXn,HoCj&k(0$0U% 0 +0U0[pir#Q~Mˡr0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority<<>c@0 +70UoN?4K;AC0 +7  SubCA0 U0U00  *H M1|PapEsT? -QS9V ތ;ɷQ!oi~k"Flm|"Fӄ6~p]Eݎ*|ɮ2Շc6!v;s!شTeJ(&`;exHϭ:ObX099!dcC/{FeJtn ̝(a|H!8Ŗ2@S=f7"̰wTQ:rD#00 a- 0  *H 0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Timestamping PCA0 080725190217Z 130725191217Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1 0 U MOPR1'0%U nCipher DSE ESN:7A82-688A-9F921%0#UMicrosoft Time-Stamp Service0"0  *H 0  BQzٕ܇7(vMPv*GVi~MquۻCloq+|Δź~a-0&-v?F؉7[hd֋=vP'`]),<ϥZ5O8a?=6Vw;]7'c,HUl+~w$*p*$Ţ"KLYwTrC>dݓXI 63~Ly2Y)0 +0 *H  1  +70 +7 10  +70# *H  1Hg:6n*ڍp0X +7 1J0H&$SQL Server 2008 R2http://www.microsoft.com/sql0  *H V3lw@4k@+[dE[Ԕ\$)d4Բ"& Dү<]9iA{R;[gfO wcxdo<:T)^Wk0.xs0imb"Ǫ$y , ɇCoӔG\XM<9'+v@T}ur\Z[|/&$m=*ju*+0 *H  1 000y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Timestamping PCA a- 0+]0 *H  1  *H 0 *H  1 100402235601Z0# *H  16"Ll\LXK0  *H 2@Љ T,Etʬtggڐ}T+c d[gDWIcn}^C;BjHshŸE f Ɗ b