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)