2013-04-26 2 views
10

Nach the sysobjects documentation kann einer dieser Objekttypen sein:Gibt es eine Tabelle, die die Auflistung von sysobjects.xtype-Beschreibungen enthält?

| 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   | 

und ich konnte ich eine Tabelle auf nur anschließen kann, dass xtype Beschreibung Nachschlag diejenigen in eine CASE Aussage, aber gibt es setzen? Ich weiß systypes ist nicht diese Tabelle. Ich meine, ich habe nur eine Menge von ihnen auswendig gelernt, aber ich recherchiere gerade in einer Datenbank und es ist mir fremd (dh ich weiß nicht viel darüber) und deshalb würde ich gerne bauen dass die Beschreibung in dieser Abfrage ohne CASE Aussage:

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%' 
aktualisieren

Unten ist das Endergebnis nach der Antwort von SQLMenace. Ich fühlte, dass es notwendig ist, hier zu platzieren, weil es nicht einfach eine gerade Vorwärts join ist.

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 

Antwort

11

Es gibt diese

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

Ausgabe

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

Fantastische Antwort !! Ich habe meine Frage mit dem Endergebnis bearbeitet, weil der 'Join' ein wenig anders ist als die Norm, so dass jeder ein klares Bild davon bekommen konnte, wie ich mich ihm angeschlossen habe. –

Verwandte Themen