sys.columns (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

Retorna uma linha para cada coluna de um objeto que tem colunas, como exibições ou tabelas. A lista a seguir contém os tipos de objeto que têm colunas:

  • Funções de assembly com valor de tabela (FT)
  • Funções SQL embutidas com valor de tabela (IF)
  • Tabelas internas (IT)
  • Tabelas do sistema (S)
  • Funções SQL com valor de tabela (TF)
  • Tabelas de usuário (U)
  • Exibições (V)
Nome da coluna Tipo de dados Descrição
object_id int ID do objeto ao qual esta coluna pertence.
name sysname Nome da coluna. É exclusiva no objeto.
column_id int ID da coluna. É exclusiva no objeto. Os IDs de coluna podem não ser sequenciais.
system_type_id tinyint ID do tipo de sistema da coluna.
user_type_id int ID do tipo da coluna, como definido pelo usuário. Para retornar o nome do tipo, faça a junção com a exibição do catálogo sys.types nessa coluna.
max_length smallint Comprimento máximo (em bytes) da coluna.

-1 = O tipo de dados da coluna é varchar(max), nvarchar(max), varbinary(max) ou xml.

Para colunas de texto, ntext e imagem , o max_length valor é 16 (representando apenas o ponteiro de 16 bytes) ou o valor definido por sp_tableoption 'text in row'.
precision tinyint Precisão da coluna se baseada em números; caso contrário, 0.
scale tinyint Escala da coluna se baseada em números; caso contrário, 0.
collation_name sysname Nome da ordenação da coluna, se for baseado em caracteres. Caso contrário, NULL.
is_nullable bit 1 = A coluna é anulável
0 = A coluna não é anulável
is_ansi_padded bit 1 = A coluna usa o ANSI_PADDING ON comportamento se o caractere, binário ou variante

0 = A coluna não é um caractere, binário ou variante
is_rowguidcol bit 1 = A coluna é declarada ROWGUIDCOL
is_identity bit 1 = A coluna tem valores de identidade
is_computed bit 1 = Coluna é uma coluna computada
is_filestream bit 1 = Column é uma coluna FILESTREAM
is_replicated bit 1 = A coluna é replicada
is_non_sql_subscribed bit 1 = A coluna tem um assinante não SQL Server
is_merge_published bit 1 = A coluna é publicada por mesclagem
is_dts_replicated bit 1 = A coluna é replicada usando o SSIS
is_xml_document bit 1 = O conteúdo é um documento XML completo

0 = O conteúdo é um fragmento de documento ou o tipo de dados da coluna não é xml
xml_collection_id int Diferente de zero se o tipo de dados da coluna for xml e o XML for tipado. O valor é a ID da coleção que contém o namespace do esquema XML de validação da coluna

0 = Nenhuma coleção de esquema XML
default_object_id int ID do objeto padrão, independentemente de ser um objeto autônomo sp_bindefault ou uma restrição embutida em nível DEFAULT de coluna. A coluna parent_object_id de um objeto embutido padrão no nível da coluna é uma referência à própria tabela.

0 = Sem padrão
rule_object_id int ID da regra autônoma associada à coluna usando sys.sp_bindrule.

0 = Nenhuma regra autônoma. Para restrições de nível CHECK de coluna, consulte sys.check_constraints.
is_sparse bit 1 = Column é uma coluna esparsa. Para obter mais informações, consulte Usar colunas esparsas.
is_column_set bit 1 = Column é um conjunto de colunas. Para obter mais informações, consulte Usar colunas esparsas.
generated_always_type tinyint Identifica quando o valor da coluna é gerado (é sempre 0 para colunas em tabelas do sistema).

Aplica-se a: SQL Server 2016 (13.x) e posteriores e Banco de Dados SQL.

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL.

5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

Para saber mais, confira Tabelas temporais (bancos de dados relacionais).
generated_always_type_desc nvarchar(60) Descrição textual do generated_always_type valor (sempre NOT_APPLICABLE para colunas em tabelas do sistema)

Aplica-se a: SQL Server 2016 (13.x) e posteriores e Banco de Dados SQL.

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL.

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int Tipo de criptografia:

1 = Criptografia determinística
2 = Criptografia aleatória

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
encryption_type_desc nvarchar(64) Descrição do tipo de criptografia:

RANDOMIZED
DETERMINISTIC

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
encryption_algorithm_name sysname Nome do algoritmo de criptografia. Apenas AEAD_AES_256_CBC_HMAC_SHA_512 tem suporte.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
column_encryption_key_id int ID da chave de criptografia de coluna (CEK).

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
column_encryption_key_database_name sysname O nome do banco de dados em que a chave de criptografia de coluna existe quando ele é diferente do banco de dados da coluna. NULL se a chave existir no mesmo banco de dados que a coluna.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
is_hidden bit Indica se a coluna é oculta:

0 = coluna regular, não oculta e visível
1 = coluna oculta

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
is_masked bit Indica se a coluna é mascarada pelo mascaramento dinâmico de dados:

0 = coluna regular e não mascarada
1 = a coluna está mascarada

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL
graph_type int Coluna interna com um conjunto de valores. Os valores estão entre 1 e 8 para colunas de gráfico e NULL para outras.
graph_type_desc nvarchar(60) Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
is_data_deletion_filter_column bit Indica se a coluna é a coluna de filtro de retenção de dados da tabela.

Aplica-se ao: SQL do Azure no Edge
ledger_view_column_type int Caso contrário NULL, indica o tipo de uma coluna em uma exibição do razão:

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

Para obter mais informações, consulte Visão geral do Ledger.

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL
ledger_view_column_type_desc nvarchar(60) Caso contrário NULL, contém uma descrição textual do tipo de coluna em uma exibição contábil:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL
is_dropped_ledger_column bit Indica uma coluna da tabela contábil que foi descartada.

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL

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