2010-05-25 4 views
13

Sur SQL Server, la table sys.objects inclut les attributs "Type" et "Type_Desc". Par exemple, pour un de mes BDs:Interprétation des codes de type dans sys.objects dans SQL Server

SELECT DISTINCT [Type], Type_Desc 
FROM Sys.Objects 
ORDER BY [Type] 

Retours:

 
C  CHECK_CONSTRAINT 
D  DEFAULT_CONSTRAINT 
F  FOREIGN_KEY_CONSTRAINT 
FN  SQL_SCALAR_FUNCTION 
FS  CLR_SCALAR_FUNCTION 
IT  INTERNAL_TABLE 
P  SQL_STORED_PROCEDURE 
PK  PRIMARY_KEY_CONSTRAINT 
S  SYSTEM_TABLE 
SQ  SERVICE_QUEUE 
TR  SQL_TRIGGER 
U  USER_TABLE 
UQ  UNIQUE_CONSTRAINT 
V  VIEW 

différents blocs de données ont des résultats différents, en fonction de quels types sont utilisés.

Y at-il une liste complète de ces types quelque part? Il n'y a pas de contrainte sur sys.objects qui me pointe vers la table de ceux-ci, et sys.types contient des types de données. J'ai recherché SQL BOL mais je ne l'ai pas trouvé. Toute aide serait appréciée.

EDIT: Certains DB n'utilisent qu'un sous-ensemble de ces types. Par exemple, si j'ai une base de données sans vue, lorsque je interroge Sys.Objects comme ci-dessus, il n'y a pas de lignes "V" dans les résultats. Je suis à la recherche d'une liste de tous les types et descriptions possibles utilisés par SQL Server.

Répondre

35

BOL a une liste complète, mais vous ne pouvez pas vous y connecter.

AF = Aggregate function (CLR) 
C = CHECK constraint 
D = DEFAULT (constraint or stand-alone) 
F = FOREIGN KEY constraint 
FN = SQL scalar function 
FS = Assembly (CLR) scalar-function 
FT = Assembly (CLR) table-valued function 
IF = SQL inline table-valued function 
IT = Internal table 
P = SQL Stored Procedure 
PC = Assembly (CLR) stored-procedure 
PG = Plan guide 
PK = PRIMARY KEY constraint 
R = Rule (old-style, stand-alone) 
RF = Replication-filter-procedure 
S = System base table 
SN = Synonym 
SQ = Service queue 
TA = Assembly (CLR) DML trigger 
TF = SQL table-valued-function 
TR = SQL DML trigger 
TT = Table type 
U = Table (user-defined) 
UQ = UNIQUE constraint 
V = View 
X = Extended stored procedure 

Aller à la meilleure source SQL Server pour cette info: sys.objects (Transact-SQL) il ne mentionne aucune table pour se joindre à. Je ne peux pas dire que j'ai jamais remarqué une table de codes à rejoindre pour l'une des tables ou des vues système.

Je suppose que vous devrez créer votre propre table ou vue, ou simplement utiliser l'attribut Type_Desc dans sys.objects.

0

Pour SQL 2016 est nouvelle:

SP = Security Policy 
1

Je sais que cela est un peu vieux maintenant, mais pour ceux qui recherchent une réponse, ce que je trouve.

select * from master..spt_values where type = 'O9T' 
Questions connexes