Partilhar via


sys.types (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Contém uma linha para cada sistema e tipo definido pelo utilizador.

Nome da coluna Tipo de dados Description
name sysname Nome do tipo. É único dentro do esquema.
system_type_id tinyint ID do tipo de sistema interno.
user_type_id int Identificação desse tipo. É exclusivo dentro do banco de dados.

Os tipos de montagem CLR, como hierarquicida, geometria e geografia, terão um , e system_type_idpodem ser identificados usando is_assembly_type. O tipo de dados sysname é um tipo interno baseado em nvarchar.
schema_id int ID do esquema ao qual o tipo pertence.
principal_id int O ID do proprietário individual é diferente do proprietário do esquema. Por defeito, os objetos contidos no esquema pertencem ao proprietário do esquema. No entanto, um proprietário alternativo pode ser especificado usando a declaração ALTER AUTHORIZATION para mudar de propriedade.

NULL se não houver proprietário individual alternativo.
max_length smallint Comprimento 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 baseada em números; caso contrário, 0.
scale tinyint Escala máxima do tipo se for baseada em números; caso contrário, 0.
collation_name sysname Nome da colação do tipo se for baseada em caracteres; caso contrário, NULL.
is_nullable bit O tipo é anulável.
is_user_defined bit 1 = Tipo definido pelo utilizador.

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

0 = O tipo baseia-se num tipo de dado de sistema SQL Server.
default_object_id int ID do padrão autónomo que está associado ao tipo usando sp_bindefault.

0 = Não existe padrão.
rule_object_id int ID da regra autónoma que está ligada ao tipo usando sp_bindrule.

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

Permissions

A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Exemplos de utilização

Obter detalhes da coluna para 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');