Share via


sp_columns (Transact-SQL)

Retorna as informações de colunas dos objetos especificados que podem ser consultados no ambiente atual.

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

Sintaxe

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]

Argumentos

  • [ @table_name=] object
    É o nome do objeto que é usado para retornar informações de catálogo. object pode ser uma tabela, exibição ou outro objeto que tem colunas, como funções com valor de tabela. object é nvarchar(384), sem padrão. Há suporte para a correspondência do padrão curinga.

  • [ @table_owner=] owner
    É o proprietário do objeto usado para retornar informações de catálogo. owner é nvarchar(384), com um padrão NULL. Há suporte para a correspondência do padrão curinga. Se owner não for especificado, serão aplicadas as regras de visibilidade de objeto padrão do DBMS subjacente.

    Se o usuário atual possuir um objeto com o nome especificado, as colunas desse objeto serão retornadas. Se owner não for especificado e o usuário atual não possuir um objeto com o object especificado, sp_columns procurará um objeto com o object especificado que seja do proprietário do banco de dados. Se existir, as colunas desse objeto serão retornadas.

  • [ @table_qualifier=] qualifier
    É o nome do qualificador do objeto. O qualifier é sysname, com um padrão de NULL. Vários produtos DBMS oferecem suporte à nomenclatura de três partes de objetos. (qualifier**.owner.**name). No SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, ela representa o nome do servidor do ambiente de banco de dados do objeto.

  • [ @column_name=] column
    É uma única coluna, usado quando se deseja apenas uma coluna de informações de catálogo. column é nvarchar(384), com um padrão NULL. Se column não for especificado, todas as colunas serão retornadas. No SQL Server, column representa o nome de coluna como listado na tabela syscolumns. Há suporte para a correspondência de padrão curinga. Para interoperabilidade máxima, o cliente de gateway deve pressupor correspondência apenas do padrão SQL-92 (os caracteres curinga % e _).

  • [ @ODBCVer=] ODBCVer
    É a versão do ODBC que está sendo usada. ODBCVer é int, com um padrão 2. Isso indica ODBC versão 2. Os valores válidos são 2 ou 3. Para obter as diferenças de comportamento entre as versões 2 e 3, consulte a especificação SQLColumns do ODBC.

Valores de código de retorno

Nenhum

Conjuntos de resultados

O procedimento armazenado de catálogo sp_columns é equivalente a SQLColumns no ODBC. Os resultados retornados são ordenados por TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Nome da coluna

Tipo de dados

Descrição

TABLE_QUALIFIER

sysname

Nome do qualificador do objeto. Esse campo pode ser NULL.

TABLE_OWNER

sysname

Nome do proprietário do objeto. Esse campo sempre retorna um valor.

TABLE_NAME

sysname

Nome do objeto. Esse campo sempre retorna um valor.

COLUMN_NAME

sysname

Nome de cada coluna do TABLE_NAME retornado. Este campo sempre retorna um valor.

DATA_TYPE

smallint

Código inteiro para o tipo de dados do ODBC. Se este for um tipo de dados que não pode ser mapeado para um tipo do ODBC, ele será NULL. O nome do tipo de dados nativo é retornado na coluna TYPE_NAME.

TYPE_NAME

sysname

Cadeia de caracteres que representa um tipo de dados. O DBMS subjacente apresenta este nome de tipo de dados.

PRECISION

int

Número de dígitos significativos. O valor de retorno da coluna PRECISION está em base 10.

LENGTH

int

Tamanho da transferência dos dados.1

SCALE

smallint

Número de dígitos à direita da vírgula decimal.

RADIX

smallint

Base para tipos de dados numéricos.

NULLABLE

smallint

Especifica possibilidade de nulidade:

1 = NULL é possível.

0 = NOT NULL.

REMARKS

varchar(254)

Este campo sempre retorna NULL.

COLUMN_DEF

nvarchar(4000)

Valor padrão da coluna.

O SQL Server 2008 e o SQL Server 2005 diferem do SQL Server 2000 pela maneira como decodificam e armazenam 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, 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.

SQL_DATA_TYPE

smallint

Valor do tipo de dados SQL como ele aparece no campo TYPE do descritor. Esta coluna é igual à coluna DATA_TYPE, com exceção dos tipos de dados datetime e interval do SQL-92. Esta coluna sempre retorna um valor.

SQL_DATETIME_SUB

smallint

Código de subtipo para os tipos de dados datetime e interval do SQL-92. Para outros tipos de dados, esta coluna retorna NULL.

CHAR_OCTET_LENGTH

int

Comprimento máximo em bytes de uma coluna do tipo de dados caractere ou inteiro. Para todos os outros tipos de dados, essa coluna retorna NULL.

ORDINAL_POSITION

int

Posição ordinal da coluna no objeto. A primeira coluna no objeto é 1. Essa coluna sempre retorna um valor.

IS_NULLABLE

varchar(254)

A nulidade da coluna no objeto. As regras ISO são seguidas para determinar a nulidade. Um DBMS em conformidade com ISO SQL não pode retornar uma cadeia de caracteres vazia.

YES = A coluna pode incluir NULLS.

NO = A coluna não pode incluir NULLS.

Esta coluna retornará uma cadeia de caracteres de comprimento zero se a possibilidade de nulidade for desconhecida.

O valor retornado para esta coluna é diferente do valor retornado para a coluna NULLABLE.

SS_DATA_TYPE

tinyint

Tipo de dados do SQL Server usado por procedimentos armazenados estendidos. Para obter mais informações, consulte Tipos de dados (Transact-SQL).

1 Para obter mais informações, consulte a documentação do Microsoft ODBC.

Permissões

Requer permissão SELECT no esquema.

Comentários

sp_columns segue os requisitos para identificadores delimitados. Para obter mais informações, consulte Identificadores delimitados (Mecanismo de Banco de Dados).

Exemplos

O exemplo a seguir retorna informações de coluna para uma tabela especificada.

USE AdventureWorks2008R2;
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';