Подтвердить что ты не робот

Интерпретация типов кодов в sys.objects в SQL Server

В SQL Server таблица sys.objects включает атрибуты "Тип" и "Тип_Desc". Например, для одной из моих БД:

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

Возвращает:

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  

Различные БД имеют разные результаты, в зависимости от того, какие типы используются.

Есть ли исчерпывающий список этих типов? Не существует ограничений на sys.objects, который указывает мне на таблицу из них, а sys.types содержит типы данных. Я искал SQL BOL, но не нашел его. Любая помощь будет оценена по достоинству.

EDIT: в некоторых БД используется только подмножество этих типов. Например, если у меня есть база данных без представлений, когда я запрашиваю Sys.Objects, как указано выше, в результатах нет строк "V". Я ищу список всех возможных типов и описаний, используемых SQL Server.

4b9b3361

Ответ 1

BOL имеет полный список, но вы не можете присоединиться к этому.

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

Переход к лучшему источнику SQL Server для этой информации: sys.objects(Transact-SQL), он не упоминает ни одну таблицу для присоединения к. Я не могу сказать, что я когда-либо замечал таблицу кодов для присоединения к любой из системных таблиц или представлений.

Думаю, вам придется создать свою собственную таблицу или представление или просто использовать атрибут Type_Desc в sys.objects.

Ответ 2

Я понимаю, что это уже немного устарело, но для тех, кто ищет ответ, это то, что я нашел.

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

Ответ 3

Для SQL 2016 это новое:

SP = Security Policy