sys.columns (Transact-SQL)

Aplica-se a:yesSQL Server (todas as versões compatíveis) YesBanco de Dados SQL do Azure YesInstância Gerenciada de SQL do Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Retorna uma linha para cada coluna de um objeto que tem colunas, como exibições ou tabelas. A seguir, uma lista de 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 de coluna é varchar(max), nvarchar(max), varbinary(max) ou xml.

Para colunas de texto, ntext e imagem, o valor de max_length será 16 (representando somente o ponteiro de 16 bytes) ou o valor definido por sp_tableoption 'text in row'.
precisão tinyint Precisão da coluna com base numérica, caso contrário é 0.
scale tinyint Escala da coluna se numérica; 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 permite valor nulo.
is_ansi_padded bit 1 = A coluna usa o comportamento ANSI_PADDING ON se for de caractere, binária, ou variante.

0 = A coluna não é de caractere, binária nem variante.
is_rowguidcol bit 1 = A coluna é uma ROWGUIDCOL declarada.
is_identity bit 1 = A coluna tem valores de identidade
is_computed bit 1 = A coluna é computada.
is_filestream bit 1 = A coluna é uma coluna de 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 será o ID da coleção que contém o namespace do esquema XML de validação da coluna.

0 = Nenhuma coleção de esquemas XML.
default_object_id int ID do objeto padrão, seja um objeto sys.sp_bindefault autônomo ou uma restrição DEFAULT embutida, no nível da 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 CHECK no nível da coluna, confira sys.check_constraints (Transact-SQL).
is_sparse bit 1 = A coluna é esparsa. Para obter mais informações, veja Usar colunas esparsas.
is_column_set bit 1 = A coluna é um conjunto de colunas. Para obter mais informações, veja Usar colunas esparsas.
generated_always_type tinyint Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL. 5, 6, 7, 8 se aplicam apenas ao Banco de Dados SQL.

Identifica quando o valor da coluna é gerado (sempre será 0 para colunas em tabelas do sistema):

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
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) Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

Descrição textual do valor de generated_always_type (sempre NOT_APPLICABLE para colunas em tabelas do sistema)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Aplica-se a: começando com o SQL Server 2022, Banco de Dados SQL

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

Tipo de criptografia:

1 = Criptografia determinística

2 = Criptografia aleatória
encryption_type_desc nvarchar(64) Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

Descrição do tipo de criptografia:

RANDOMIZED

DETERMINISTIC
encryption_algorithm_name sysname Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

Nome do algoritmo de criptografia.

Há suporte apenas para AEAD_AES_256_CBC_HMAC_SHA_512.
column_encryption_key_id int Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

ID do CEK.
column_encryption_key_database_name sysname Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL.

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.
is_hidden bit Aplica-se a: SQL Server 2019 (15.x) e posterior, Banco de Dados SQL.

Indica se a coluna é oculta:

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

1 = coluna oculta
is_masked bit Aplica-se a: SQL Server 2019 (15.x) e posterior, Banco de Dados SQL.

Indica se a coluna é mascarada por uma máscara dinâmica de dados:

0 = coluna regular, não mascarada

1 = a coluna é mascarada
graph_type int Coluna interna com um conjunto de valores. Os valores estão entre 1 e 8 para colunas de grafo e NULL para outras.
graph_type_desc nvarchar(60) coluna interna com um conjunto de valores
is_data_deletion_filter_column bit Aplica-se a: SQL do Azure no Edge. Indica se a coluna é a coluna de filtro de retenção de dados da tabela.
ledger_view_column_type tinyint Aplica-se a: começando com o SQL Server 2022, Banco de Dados SQL.

Quando não é 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 sobre o razão do banco de dados, confira Razão.
ledger_view_column_type_desc nvarchar(60) Aplica-se a: começando com o SQL Server 2022, Banco de Dados SQL.

Quando não é NULL, contém uma descrição textual do tipo de uma coluna em uma exibição do razão:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit Aplica-se a: começando com o SQL Server 2022, Banco de Dados SQL.

Indica uma coluna de tabela do razão que foi removida.

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.

Consulte Também

Exibições do Sistema (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
Exibições do Catálogo (Transact-SQL)
Consultando as perguntas frequentes do catálogo do sistema do SQL Server
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)