2013-04-26 14 views
10

Według the sysobjects documentation, może być jednym z tych typów obiektów:Czy istnieje tabela zawierająca listę opisów sysobjects.xtype?

| xtype |    Description    | 
|-------|---------------------------------------| 
| AF | Aggregate function (CLR)    | 
| C  | CHECK constraint      | 
| D  | Default or DEFAULT constraint  | 
| F  | FOREIGN KEY constraint    | 
| L  | Log         | 
| FN | Scalar function      | 
| FS | Assembly (CLR) scalar-function  | 
| FT | Assembly (CLR) table-valued function | 
| IF | In-lined table-function    | 
| IT | Internal table      | 
| P  | Stored procedure      | 
| PC | Assembly (CLR) stored-procedure  | 
| PK | PRIMARY KEY constraint (type is K) | 
| RF | Replication filter stored procedure | 
| S  | System table       | 
| SN | Synonym        | 
| SQ | Service queue      | 
| TA | Assembly (CLR) DML trigger   | 
| TF | Table function      | 
| TR | SQL DML Trigger      | 
| TT | Table type       | 
| U  | User table       | 
| UQ | UNIQUE constraint (type is K)  | 
| V  | View         | 
| X  | Extended stored procedure   | 

i mogę umieścić te w CASE oświadczenie, ale jest tam stół mogę tylko przyłączyć się do przeglądową, która xtype opis? Wiem, że systypes nie jest tym stołem. Chodzi mi o to, że po prostu zapamiętałem ich wiele, ale robię badania w bazie danych i jest to dla mnie obce (tj. Nie wiem nic na ten temat) i dlatego chciałbym zbudować że opis do tego zapytania bez CASE stwierdzeniem:

select object_name(c.id), c.name, [length], o.xtype from syscolumns c 
    join sysobjects o on o.id = c.id 
where c.name like '%job%code%' 
Aktualizacja

Poniżej efekt końcowy po odpowiedź SQLMenace. Czułem, że należy tu umieścić, ponieważ nie jest to zwykły numer join.

select object_name(c.id), c.name, t.name, c.[length], o.xtype, x.name from syscolumns c 
    join sysobjects o on o.id = c.id 
    join systypes t on t.xtype = c.xtype 
    join master..spt_values x on x.name like '%' + o.xtype + '%' and x.type = 'O9T' 
where c.name like '%job%code%' 
order by c.xtype 

Odpowiedz

11

Jest to

SELECT name 
FROM master..spt_values 
WHERE type = 'O9T' 

Wyjście

AF: aggregate function 
AP: application 
C : check cns 
D : default (maybe cns) 
EN: event notification 
F : foreign key cns 
FN: scalar function 
FS: assembly scalar function 
FT: assembly table function 
IF: inline function 
IS: inline scalar function 
IT: internal table 
L : log 
P : stored procedure 
PC : assembly stored procedure 
PK: primary key cns 
R : rule 
RF: replication filter proc 
S : system table 
SN: synonym 
SQ: queue 
TA: assembly trigger 
TF: table function 
TR: trigger 
U : user table 
UQ: unique key cns 
V : view 
X : extended stored proc 
sysobjects.type, reports 
+0

Fantastyczna odpowiedź !! Edytowałem moje pytanie z wynikiem końcowym, ponieważ "join" jest nieco inne niż norma, więc każdy mógł uzyskać jasny obraz tego, jak do niego dołączyłem. –

Powiązane problemy