回答

收藏

是否有一个表包含sysobjects.xtype描述的列表?

技术问答 技术问答 227 人阅读 | 0 人回复 | 2023-09-14

根据sysobjects文档,sysobjects.xtype可以是以下对象类型之一:, W% t: R$ R9 D8 I
| xtype |              Description              |  W2 W. R& i) a& q# M2 x
|-------|---------------------------------------|# S* T% Q% C- E' C
| AF    |  Aggregate function (CLR)             |! h. D6 M$ b9 g% t
| C     |  CHECK constraint                     |' F) S1 v4 |' R; [- R& |/ Q7 T
| D     |  Default or DEFAULT constraint        |( P$ h3 O6 c! Z& R7 z4 L
| F     |  FOREIGN KEY constraint               |
3 a% M2 ~' ]! Q% |, [) U' `  Q| L     |  Log                                  |
5 X' H3 z1 u. W! m+ C* N| FN    |  Scalar function                      |
8 E; Z$ r9 _/ Z/ l& r| FS    |  Assembly (CLR) scalar-function       |' ?( n2 h, t. r1 P+ ^
| FT    |  Assembly (CLR) table-valued function |
6 B: X; T. i& ^. _, B4 o| IF    |  In-lined table-function              |( N# P9 Y6 Q7 t
| IT    |  Internal table                       |4 q, a+ i+ ]6 l2 N
| P     |  Stored procedure                     |
2 X0 {4 d# s  O4 K9 a$ }, `| PC    |  Assembly (CLR) stored-procedure      |
3 W4 j. o6 W. C| PK    |  PRIMARY KEY constraint (type is K)   |: N2 s7 @' {4 d- `: x& D
| RF    |  Replication filter stored procedure  |
0 p3 o! q0 V0 f# O' H5 K| S     |  System table                         |+ P* w* j' W. @  `: l
| SN    |  Synonym                              |
5 @% g9 I, J+ b! E| SQ    |  Service queue                        |3 c+ u0 a/ i) c7 B9 y" M, ~
| TA    |  Assembly (CLR) DML trigger           |% m2 K* C/ a- E' G8 ?
| TF    |  Table function                       |
; Z2 j& N$ s0 C4 }! N9 V1 H) j| TR    |  SQL DML Trigger                      |5 A" h3 I3 z6 j
| TT    |  Table type                           |& r4 |) q0 y3 [$ e* l) p
| U     |  User table                           |; i1 g' x6 s3 M8 u2 V
| UQ    |  UNIQUE constraint (type is K)        |
- P/ m! @/ o, @. n  F+ }| V     |  View                                 |7 o, N6 [2 V& z4 I
| X     |  Extended stored procedure            |- @+ S6 G. ^- g9 p- w
我可以将它们放到CASE语句中,但是有没有我可以加入的表来查找该xtype描述?我知道systypes不是那张桌子。我的意思是,我已经记住了很多,但是我正在对数据库进行一些研究,这对我来说是陌生的(即我对此一无所知),所以我想构建将该描述放入此查询中,而无需CASE声明:
& @0 r6 R3 M6 E% v! B. ]. Z. ]: E2 aselect object_name(c.id), c.name, [length], o.xtype from syscolumns c! m. z, h$ L; x1 h
    join sysobjects o on o.id = c.id
( v; D$ [" c0 S; V" k# p+ Q7 b. {" ~; Rwhere c.name like '%job%code%'" I0 r# e: E+ O( H$ `% \, U
更新7 |6 O  C8 G  E
下面是SQLMenace回答后的最终结果。我觉得有必要将其放置在这里,因为这不仅仅是直截了当的join。
8 V  G! w$ S1 `3 q7 F9 ]  g0 s& Pselect object_name(c.id), c.name, t.name, c.[length], o.xtype, x.name from syscolumns c( U9 |4 f0 ]: Q7 ]0 e& b$ T
    join sysobjects o on o.id = c.id; W3 h/ ]. v5 K1 y% p
    join systypes t on t.xtype = c.xtype% d( H) t' \+ ?2 @
    join master..spt_values x on x.name like '%' + o.xtype + '%' and x.type = 'O9T': O  S# y+ Z7 j6 y; w7 J
where c.name like '%job%code%'$ V6 j  o2 T: }7 O2 U
order by c.xtype
1 [6 P5 M. u& w7 F2 I) Y               
9 }! G6 m4 l. o) v& [, R2 W解决方案:' m5 E8 k5 U# t) Y' Q0 v4 g( G
                7 c: Y3 g8 a$ s: d; S$ ]& Y

  x( n7 n9 D7 Z0 X7 C" L6 z
. ?2 |( w4 s) ?. Y* U1 {. s6 X4 T                有这个" x' q9 J+ N& ~9 s6 G3 j% K: D
SELECT name 1 H8 U$ e" d+ O% T1 Q+ C" i
FROM master..spt_values
1 e  X4 ], V- F- {& IWHERE type = 'O9T', _$ d  ]  F% U- X1 O4 i
输出
4 ^' N  w. x2 P3 w. BAF: aggregate function. K, ^( `+ u% w/ ?9 a2 V; k' Y
AP: application, ?8 j: \* e6 i' s% k- _8 r& r
C : check cns+ g3 G9 q: ^# Z5 R- E
D : default (maybe cns)
( Q/ {6 i- O! A3 b9 N2 }2 UEN: event notification
+ {% J7 H- O; {8 |4 kF : foreign key cns
$ ?; R& f5 W. l$ b; H" LFN: scalar function
: g" {4 t; W6 z: b; sFS: assembly scalar function
- h# }; J8 R8 eFT: assembly table function8 a! Z8 _8 |* R
IF: inline function3 z- F4 P, t9 T; Z
IS: inline scalar function( Q0 G. a! e0 t: D3 e
IT: internal table
! Y4 ]5 n, f' `) J+ QL : log
6 q' ~% y$ j8 EP : stored procedure
! O. x. ~7 s1 x9 o  YPC : assembly stored procedure
: I# X" v: h* N4 p9 Z$ }% G3 z8 xPK: primary key cns3 Y; J! U3 r( w9 h
R : rule
& R7 D5 [* @+ C7 W9 D2 k! P+ TRF: replication filter proc8 ^. F! o. o7 d- F
S : system table
  Q) t2 o  u1 @SN: synonym' g6 R% Z4 V( J% y) V; O
SQ: queue8 z. k5 f! ?  |7 Q, ^
TA: assembly trigger
2 W# ]: h+ ?: L! w( CTF: table function
, i9 [: d1 \- u3 ], cTR: trigger
8 [/ k2 W/ i/ k2 ]: ]- P) Q/ @8 bU : user table: r# F" L0 t7 D3 o# E# S
UQ: unique key cns
) ^$ Z% r. z. V, W+ ]' q2 ~V : view
# {8 h1 G0 `! ]6 y- MX : extended stored proc5 a6 S9 h! l$ \) D5 b
sysobjects.type, reports
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则