COLUMNPROPERTY (Transact-SQL)
Retorna informações sobre uma coluna ou parâmetro.
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çãoAo 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)
Consulte também