COLUMNPROPERTY (Transact-SQL)

Aplica-se a: SQL Server (todas as versões com suporte) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Essa função retorna informações de coluna ou parâmetro.

Convenções de sintaxe de Transact-SQL

Sintaxe

COLUMNPROPERTY ( id , column , property )   

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

id
Uma expressão que contém o identificador (ID) da tabela ou procedimento.

column
Uma expressão que contém o nome da coluna ou parâmetro.

property
Para o argumento id, o argumento propriedade especifica o tipo de informação que a função COLUMNPROPERTY retornará. O argumento property pode ter qualquer um destes valores:

Valor Descrição Valor retornado
AllowsNull Permite valores nulos. 1: TRUE

0: FALSE

NULL = entrada inválida.
ColumnId Valor de ID da coluna que corresponde a sys.columns.column_id. ID da coluna

Observação: ao consultar várias colunas, podem aparecer intervalos na sequência de valores de ID da coluna.
FullTextTypeColumn A TYPE COLUMN na tabela contendo as informações de tipo de documento da coluna. ID de TYPE COLUMN de texto completo da expressão de nome de coluna passada como segundo parâmetro dessa função.
GeneratedAlwaysType O valor da coluna é gerado pelo sistema. Corresponde a sys.columns.generated_always_type Aplica-se a: SQL Server 2016 (13.x) e posterior.

0: não é gerado sempre

1: gerado sempre no início da linha

2: gerado sempre no fim da linha
IsColumnSet A coluna é um conjunto de colunas. Para obter mais informações, veja Usar conjuntos de colunas. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsComputed É uma coluna computada. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsCursorType O parâmetro de procedimento é do tipo CURSOR. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsDeterministic A coluna é determinística. Essa propriedade só se aplica a colunas computadas e colunas de exibição. 1: TRUE

0: FALSE

NULL = entrada inválida. Não é uma coluna computada nem uma coluna de exibição.
IsFulltextIndexed A coluna está registrada para indexação de texto completo. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsHidden O valor da coluna é gerado pelo sistema. Corresponde a sys.columns.is_hidden Aplica-se a: SQL Server 2016 (13.x) e posterior.

0: não oculto

1: oculto
IsIdentity A coluna usa a propriedade IDENTITY. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsIdNotForRepl A coluna verifica a configuração de IDENTITY_INSERT. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsIndexable A coluna pode ser indexada. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsOutParam O parâmetro do procedimento é um parâmetro de saída. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsPrecise A coluna é precisa. Essa propriedade só se aplica a colunas determinísticas. 1: TRUE

0: FALSE

NULL = entrada inválida. Não é uma coluna determinística
IsRowGuidCol A coluna tem o tipo de dados uniqueidentifier e está definida com a propriedade ROWGUIDCOL. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsSparse A coluna é esparsa. Para obter mais informações, veja Usar colunas esparsas. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsSystemVerified O Mecanismo de Banco de Dados pode verificar as propriedades de determinismo e precisão da coluna. Essa propriedade só se aplica a colunas computadas e colunas de exibições. 1: TRUE

0: FALSE

NULL = entrada inválida.
IsXmlIndexable A coluna XML pode ser usada em um índice XML. 1: TRUE

0: FALSE

NULL = entrada inválida.
Precisão Comprimento do tipo de dados da coluna ou parâmetro. Comprimento do tipo de dados de coluna especificado

-1: xml ou tipos de valor grande

NULL = entrada inválida.
Escala Escala para o tipo de dados de parâmetro ou coluna. O valor de escala

NULL = entrada inválida.
StatisticalSemantics A coluna está habilitada para indexação semântica. 1: TRUE

0: FALSE
SystemDataAccess A coluna é derivada de uma função que acessa dados nos catálogos do sistema ou tabelas do sistema virtuais do SQL Server. Essa propriedade só se aplica a colunas computadas e colunas de exibições. 1 = TRUE (indica acesso somente leitura.)

0: FALSE

NULL = entrada inválida.
UserDataAccess A coluna é derivada de uma função que acessa dados em tabelas de usuário, incluindo exibições e tabelas temporárias, armazenadas na instância local do SQL Server. Essa propriedade só se aplica a colunas computadas e colunas de exibições. 1 = TRUE (indica acesso somente leitura.)

0: FALSE

NULL = entrada inválida.
UsesAnsiTrim ANSI_PADDING foi definido como ON no momento da criação da tabela. Essa propriedade aplica-se apenas a colunas ou parâmetros do tipo char ou varchar. 1: TRUE

0: FALSE

NULL = entrada inválida.

Tipos de retorno

int

Exceções

Retornará NULL em caso de erro ou se um chamador não tiver permissão para exibir o objeto.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais recebeu permissão. Isso significa que as funções internas que emitem metadados, como COLUMNPROPERTY, poderão retornar NULL se o usuário não tiver a permissão correta para o objeto. Veja Configuração de Visibilidade de Metadados para obter mais informações.

Comentários

Ao verificar a propriedade determinística de uma coluna, teste primeiro se a coluna é uma coluna computada. O argumento IsDeterministic retorna NULL para colunas não computadas. Colunas computadas podem ser especificadas como colunas de índice.

Exemplos

Este exemplo retorna o comprimento da coluna LastName.

USE AdventureWorks2012;  
GO  
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';  
GO  

Este é o conjunto de resultados.

Column Length
-------------
50

Confira também

funções de metadados (Transact-SQL)
TYPEPROPERTY (Transact-SQL)