Compartilhar via


sys.types (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Contém uma linha para cada tipo definido pelo usuário e sistema.

Nome da coluna Tipo de dados Descrição
name sysname Nome do tipo. É exclusivo no esquema.
system_type_id tinyint ID do tipo de sistema interno.
user_type_id int A ID do tipo É exclusiva no banco de dados.

Os tipos de assembly CLR, como hierarchyid, geometry e geography, terão um system_type_id, diferente e podem ser identificados usando is_assembly_type. O tipo de dados sysname é um tipo de dados interno baseado em nvarchar.
schema_id int ID do esquema ao qual o tipo pertence.
principal_id int ID do proprietário individual se diferente do proprietário do esquema. Por padrão, os objetos contidos no esquema pertencem ao proprietário do esquema. No entanto, um proprietário alternativo pode ser especificado usando a instrução ALTER AUTHORIZATION para alterar a propriedade.

NULL se não houver um proprietário individual alternativo.
max_length smallint Comprimento de máximo (em bytes) do tipo.

-1 = O tipo de dados da coluna é varchar(max), nvarchar(max), varbinary(max) ou xml.
Para colunas de texto , o max_length valor será 16.
precision tinyint Precisão máxima do tipo se for numérico; caso contrário, 0.
scale tinyint Escala máxima do tipo se for numérico; caso contrário, 0.
collation_name sysname Nome da ordenação do tipo se ela for baseada em caracteres; caso contrário, NULL.
is_nullable bit O tipo permite valor nulo.
is_user_defined bit 1 = Tipo definido pelo usuário.

0 = Tipo de dados do sistema SQL Server.
is_assembly_type bit 1 = A implementação do tipo é definida em um assembly CLR.

0 = Type é baseado em um tipo de dados do sistema SQL Server.
default_object_id int ID do padrão autônomo associado ao tipo usando sp_bindefault.

0 = Não existe padrão.
rule_object_id int ID da regra autônoma associada ao tipo usando sp_bindrule.

0 = Nenhuma regra existe.
is_table_type bit Indica que o tipo é uma tabela.

Permissões

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos de uso

Obter detalhes da coluna de uma tabela

Para obter metadados para colunas em uma tabela, você pode usar o seguinte código:

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');