COLUMNPROPERTY (Transact-SQL)

Retorna informações sobre uma coluna ou parâmetro.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

COLUMNPROPERTY ( id , column , property ) 

Argumentos

  • id
    É uma expressão que contém o ID (identificador) da tabela ou do procedimento.

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

  • property
    É uma expressão que contém as informações a serem retornadas para id e pode ser um dos valores a seguir.

    Valor

    Descrição

    Valor retornado

    AllowsNull

    Permite valores nulos.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    ColumnId

    Valor de ID da coluna que corresponde a sys.columns.column_id.

    ID da coluna

    ObservaçãoObservação
    Ao consultar várias colunas, podem aparecer intervalos na sequência de valores de ID da coluna.

    FullTextTypeColumn

    O TYPE COLUMN na tabela que mantém as informações de tipo de documento de column.

    ID de TYPE COLUMN de texto completo da coluna passada como segundo parâmetro dessa propriedade.

    IsComputed

    É uma coluna computada.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsCursorType

    O parâmetro de procedimento é do tipo CURSOR.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsDeterministic

    A coluna é determinística. Essa propriedade só se aplica a colunas computadas e colunas de exibição.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida. Não é uma coluna computada nem uma coluna de exibição.

    IsFulltextIndexed

    A coluna foi registrada para indexação de texto completo.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsIdentity

    A coluna usa a propriedade IDENTITY.

    1 = TRUE

    0 = Falso

    NULL = A entrada não é válida.

    IsIdNotForRepl

    A coluna verifica a configuração de IDENTITY_INSERT.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsIndexable

    A coluna pode ser indexada.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é vá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 = A entrada não é válida.

    IsSystemVerified

    As propriedades de precisão e determinismo da coluna podem ser verificadas pelo Mecanismo de Banco de Dados. Essa propriedade só se aplica a colunas computadas e colunas de exibições.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsXmlIndexable

    A coluna XML pode ser usada em um índice XML.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    Precision

    Comprimento do tipo de dados da coluna ou parâmetro.

    Comprimento do tipo de dados de coluna especificado

    -1 = xml ou tipos de valores grandes

    NULL = A entrada não é válida.

    Scale

    Escala do tipo de dados da coluna ou parâmetro.

    A escala

    NULL = A entrada não é válida.

    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 = A entrada não é vá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 = A entrada não é válida.

    UsesAnsiTrim

    ANSI_PADDING foi definido como ON quando a tabela foi criada pela primeira vez. Essa propriedade só se aplica a colunas ou parâmetros do tipo char ou varchar.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsSparse

    A coluna é esparsa. Para obter mais informações, consulte Usando colunas esparsas.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

    IsColumnSet

    A coluna é um conjunto de colunas. Para obter mais informações, consulte Usando conjuntos de colunas.

    1 = TRUE

    0 = FALSE

    NULL = A entrada não é válida.

Tipos de retorno

int

Exceções

Retorna NULL no caso de erro ou se um chamador não tiver permissão para exibir o objeto.

No SQL Server 2008, o usuário só pode exibir os metadados de itens protegíveis de sua propriedade ou para os quais ele tenha recebido permissão. Isso significa que as funções internas emissoras de metadados, como COLUMNPROPERTY, podem retornar NULL se o usuário não tiver permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados e Solucionando problemas de visibilidade de metadados.

Comentários

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

Exemplos

O exemplo a seguir retorna o comprimento da coluna LastName.

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

Aqui está o conjunto de resultados.

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

(1 row(s) affected)