sp_columns_ex (Transact-SQL)

Retorna as informações de coluna, uma linha por coluna, para as tabelas do servidor vinculado especificadas. sp_columns_ex retorna as informações de coluna somente para a coluna específica se coluna estiver especificado.

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

Sintaxe

sp_columns_ex [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_catalog' ] 
     [ , [ @column_name = ] 'column' ] 
     [ , [ @ODBCVer = ] 'ODBCVer' ]

Argumentos

  • [ @table_server = ] 'table_server'
    É o nome do servidor vinculado para o qual as informações de coluna devem ser retornadas. table_server é sysname, sem nenhum padrão.

  • [ @table_name = ] 'table_name'
    É o nome da tabela para a qual as informações de coluna devem ser retornadas. table_name é sysname, com um padrão NULL.

  • [ @table_schema = ] 'table_schema'
    É o nome do esquema da tabela para a qual as informações de coluna devem ser retornadas. table_schema é sysname, com um padrão NULL.

  • [ @table_catalog = ] 'table_catalog'
    É o nome do catálogo da tabela para a qual as informações de coluna devem ser retornadas. table_catalog é sysname, com um padrão NULL.

  • [ @column_name = ] 'column'
    É o nome da coluna de banco de dados para a qual as informações de privilégio devem ser fornecidas. column é sysname, com um padrão NULL.

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

Valores de código de retorno

Nenhum

Conjuntos de resultados

Nome da coluna

Tipo de dados

Descrição

TABLE_CAT

sysname

Nome do qualificador da tabela ou exibição. Vários produtos de DBMS oferecem suporte à nomeação de três partes de tabelas (qualifier.owner.name). No SQL Server 2008 e SQL Server 2005, esta coluna representa o nome do banco de dados. Em alguns produtos, representa o nome do servidor do ambiente de banco de dados da tabela. Este campo pode ser NULL.

TABLE_SCHEM

sysname

Nome do proprietário da tabela ou exibição. No SQL Server, esta coluna representa o nome do usuário de banco de dados que criou a tabela. Este campo sempre retorna um valor.

TABLE_NAME

sysname

Nome da tabela ou exibição. Este 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

Valor inteiro que corresponde aos indicadores de tipo ODBC. Se for um tipo de dados que não pode ser mapeado para um tipo ODBC, este valor será NULL. O nome do tipo de dados nativo é retornado na coluna TYPE_NAME.

TYPE_NAME

varchar(13)

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

COLUMN_SIZE

int

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

BUFFER_LENGTH

int

Tamanho da transferência dos dados.1

DECIMAL_DIGITS

smallint

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

NUM_PREC_RADIX

smallint

É a 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

varchar(254)

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, esta coluna retorna NULL.

ORDINAL_POSITION

int

Posição ordinal da coluna na tabela. A primeira coluna na tabela é 1. Esta coluna sempre retorna um valor.

IS_NULLABLE

varchar(254)

Possibilidade de nulidade da coluna na tabela. As regras ISO são seguidas para determinar a possibilidade de 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 (Mecanismo de Banco de Dados).

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

Comentários

sp_columns_ex é executado consultando o conjunto de linhas COLUMNS da interface IDBSchemaRowset do provedor OLE DB correspondente a table_server. Os parâmetros table_name, table_schema, table_catalog e column são passados para essa interface a fim de restringir as linhas retornadas.

sp_columns_ex retorna um conjunto de resultados vazio se o provedor OLE DB do servidor vinculado especificado não oferecer suporte ao conjunto de linhas COLUMNS da interface IDBSchemaRowset.

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

Permissões

Requer a permissão SELECT no esquema.

Exemplos

O exemplo a seguir retorna o tipo de dados da coluna JobTitle da tabela HumanResources.Employee no banco de dados AdventureWorks2008R2 do servidor vinculado Seattle1.

EXEC sp_columns_ex 'Seattle1', 
   'Employee', 
   'HumanResources', 
   'AdventureWorks2008R2', 
   'JobTitle';