Share via


COLUMNS (Transact-SQL)

Retorna uma linha para cada coluna que pode ser acessada pelo usuário atual no banco de dados atual.

Para recuperar informações dessas exibições, especifique o nome totalmente qualificado de INFORMATION_SCHEMA.view_name.

Nome da coluna

Tipo de dados

Descrição

TABLE_CATALOG

nvarchar(128)

Qualificador da tabela.

TABLE_SCHEMA

nvarchar(128)

Nome do esquema que contém a tabela.

Observação importanteImportante
Não use exibições INFORMATION_SCHEMA para determinar o esquema de um objeto. O único modo seguro de localizar o esquema de um objeto é consultar a exibição de catálogo sys.objects.

TABLE_NAME

nvarchar(128)

Nome da tabela.

COLUMN_NAME

nvarchar(128)

Nome da coluna.

ORDINAL_POSITION

int

Número de identificação da coluna.

COLUMN_DEFAULT

nvarchar(4000)

Valor padrão da coluna.

O SQL Server 2008 difere do SQL Server 2000 na maneira como decodifica e armazena expressões SQL nos metadados do catálogo. A semântica da expressão decodificada equivale ao texto original; porém, não há nenhuma garantia sintática. Por exemplo, os espaços em branco são removidos da expressão decodificada. Para obter mais informações, consulte Alterações de comportamento em recursos do Mecanismo de Banco de Dados no SQL Server 2008 R2.

IS_NULLABLE

varchar(3)

Possibilidade de nulidade da coluna. Se essa coluna permitir NULL, ela retornará YES. Caso contrário, será retornado NO.

DATA_TYPE

nvarchar(128)

Tipo de dados fornecido pelo sistema.

CHARACTER_MAXIMUM_LENGTH

int

Comprimento máximo, em caracteres, de dados binários, dados de caracteres ou dados de texto e imagem.

-1 para xml e dados do tipo de valor grande. Caso contrário, será retornado NULL. Para obter mais informações, consulte Tipos de dados (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Comprimento máximo, em bytes, de dados binários, dados de caracteres e dados de texto e imagem.

-1 para xml e dados do tipo de valor grande. Caso contrário, será retornado NULL.

NUMERIC_PRECISION

tinyint

Precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.

NUMERIC_PRECISION_RADIX

smallint

Base de precisão de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.

NUMERIC_SCALE

int

Escala de dados numéricos aproximados, dados numéricos exatos, dados de inteiro ou dados monetários. Caso contrário, será retornado NULL.

DATETIME_PRECISION

smallint

Código de subtipo para tipos de dados datetime e interval ISO. Para outros tipos de dados, é retornado NULL.

CHARACTER_SET_CATALOG

nvarchar(128)

Retorna master. Indica o banco de dados em que o conjunto de caracteres fica localizado; se a coluna é de dados de caractere ou de tipo de dados text. Caso contrário, será retornado NULL.

CHARACTER_SET_SCHEMA

nvarchar(128)

Sempre retorna NULL.

CHARACTER_SET_NAME

nvarchar(128)

Retornará o nome exclusivo para o conjunto de caracteres se essa coluna for de dados de caractere ou de tipo de dados text. Caso contrário, será retornado NULL.

COLLATION_CATALOG

nvarchar(128)

Sempre retorna NULL.

COLLATION_SCHEMA

nvarchar(128)

Sempre retorna NULL.

COLLATION_NAME

nvarchar(128)

Retornará um nome exclusivo para o agrupamento se a coluna for de dados de caractere ou de tipo de dados text. Caso contrário, será retornado NULL.

DOMAIN_CATALOG

nvarchar(128)

Se a coluna for do tipo de dados de alias, essa coluna será o nome do banco de dados no qual foi criado o tipo de dados definido pelo usuário. Caso contrário, será retornado NULL.

DOMAIN_SCHEMA

nvarchar(128)

Se a coluna for do tipo de dados definido pelo usuário, essa coluna retornará o nome do esquema do tipo de dados definido pelo usuário. Caso contrário, será retornado NULL.

Observação importanteImportante
Não use exibições INFORMATION_SCHEMA para determinar o esquema de um tipo de dados. O único modo seguro para localizar o esquema de um tipo é usar a função TYPEPROPERTY.

DOMAIN_NAME

nvarchar(128)

Se a coluna for do tipo de dados definido pelo usuário, essa coluna será o nome do tipo de dados definido pelo usuário. Caso contrário, será retornado NULL.

Comentários

A coluna ORDINAL_POSITION da exibição INFORMATION_SCHEMA.COLUMNS não é compatível com o padrão de bit de colunas retornadas pela função COLUMNS_UPDATED. Para obter o padrão de bit compatível com COLUMNS_UPDATED, é preciso fazer referência à propriedade ColumnID da função do sistema COLUMNPROPERTY ao consultar a exibição INFORMATION_SCHEMA.COLUMNS. Por exemplo:

USE AdventureWorks2008R2;
GO
SELECT TABLE_NAME, COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks2008R2.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Person';
GO