Поделиться через


sys.types (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Содержит по строке для каждого системного и определяемого пользователем типа данных.

Имя столбца Тип данных Description
name sysname Имя типа данных. Уникально в пределах схемы.
system_type_id tinyint Идентификатор внутреннего типа системы.
user_type_id int Идентификатор типа данных. Уникален в пределах базы данных.

Типы сборок СРЕДЫ CLR, такие как hierarchyid, geometry и geography, имеют другой system_type_idтип и могут быть определены с помощью is_assembly_type. Тип данных sysname — это внутренний тип данных на основе nvarchar.
schema_id int Идентификатор схемы, к которой принадлежит тип данных.
principal_id int Идентификатор отдельного владельца, если он отличается от владельца схемы. По умолчанию содержащиеся в схеме объекты принадлежат владельцу схемы. Однако с помощью инструкции ALTER AUTHORIZATION можно изменить право собственности и указать другого владельца.

NULL Если альтернативного владельца нет.
max_length smallint Максимальная длина типа (в байтах):

-1= тип данных столбца — varchar(max), nvarchar(max), varbinary(max)или xml.
Для текстовых столбцов max_length значение равно 16.
precision tinyint Максимальная точность значений этого типа данных, если он числовой; иначе — значение 0.
scale tinyint Максимальный масштаб значений этого типа данных, если он числовой; иначе — значение 0.
collation_name sysname Имя сортировки типа, если оно основано на символах; другие мудрые, NULL.
is_nullable bit Тип данных допускает значения NULL.
is_user_defined bit 1 = определяемый пользователем тип.

0 = тип системных данных SQL Server.
is_assembly_type bit 1 = реализация типа определяется в сборке CLR.

0 = Тип основан на системном типе данных SQL Server.
default_object_id int Идентификатор автономного по умолчанию, привязанного к типу с помощью sp_bindefault.

0 = нет по умолчанию.
rule_object_id int Идентификатор автономного правила, привязанного к типу с помощью sp_bindrule.

0 = нет правила.
is_table_type bit Указывает, что тип является табличным.

Разрешения

Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры использования

Получение сведений о столбце для таблицы

Чтобы получить метаданные для столбцов в таблице, можно использовать следующий код:

CREATE TABLE dbo.[sample] (
    id INT NOT NULL
    ,col1 VARBINARY(10) NULL
    )
GO

SELECT c.[name] AS column_name
    ,t.[name] AS [type_name]
    ,c.[max_length]
    ,c.[precision]
    ,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');