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ável0 = 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 variante0 = 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 completo0 = 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 coluna0 = 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ística2 = Criptografia aleatóriaAplica-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ível1 = coluna ocultaAplica-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 mascarada1 = a coluna está mascaradaAplica-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');