Partilhar via


sp_columns (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

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

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_columns
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

Argumentos

[ @table_name = ] N'table_name'

@table_name é nvarchar(384), sem padrão.

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

@table_owner [ = ] N'table_owner'

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

Se o usuário atual possuir um objeto com o nome especificado, as colunas desse objeto serão retornadas. Se @table_owner não for especificado e o usuário atual não possuir um objeto com o @table_name especificado, sp_columns procurará um objeto com o @table_name especificado pertencente ao proprietário do banco de dados. Se existir, as colunas desse objeto serão retornadas.

@table_qualifier [ = ] N'table_qualifier'

@table_qualifier é sysname, com um padrão de NULL.

O nome do qualificador de objeto. @table_qualifier é sysname, com um padrão de NULL. Vários produtos DBMS suportam nomenclatura de três partes para 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 [ = ] N'column_name'

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

@ODBCVer [ = ] ODBCVer

A versão do ODBC que está sendo usada. @ODBCVer é int, com um padrão de 2. Isto 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 ODBC SQLColumns .

Valores do código de retorno

Nenhum.

Conjunto de resultados

O sp_columns procedimento armazenado do catálogo é equivalente ao SQLColumns 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. Este 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 da coluna, para cada coluna do TABLE_NAME retornado. Esse campo sempre retorna um valor.
DATA_TYPE smallint Código inteiro para o tipo de dados do ODBC. Se esse tipo de dados não puder ser mapeado para um tipo ODBC, será NULL. O nome do tipo de dados nativo é retornado na TYPE_NAME coluna.
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 retornado para a PRECISION coluna está na 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 = NÃO NULL.
REMARKS varchar(254) Este campo sempre retorna NULL.
COLUMN_DEF nvarchar(4000) Valor padrão da coluna.
SQL_DATA_TYPE smallint Valor do tipo de dados SQL conforme exibido no campo TYPE do descritor. Essa coluna é igual à DATA_TYPE coluna, exceto para os tipos de dados datetime e intervalo 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, essa 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. Esta coluna sempre retorna um valor.
IS_NULLABLE varchar(254) A nulidade da coluna no objeto. As regras ISO são seguidas para determinar a possibilidade de nulidade. Um DBMS compatível com ISO SQL não pode retornar uma cadeia de caracteres vazia.

YES = A coluna pode incluir NULL.
NO = A coluna não pode incluir NULL.

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

O valor retornado para essa coluna é diferente do valor retornado para a NULLABLE coluna.
SS_DATA_TYPE tinyint Tipo de dados do SQL Server usados por procedimentos armazenados estendidos. Para obter mais informações, consulte Tipos de dados.

1 Para obter mais informações, consulte Visão geral do ODBC.

Permissões

Requer SELECT e VIEW DEFINITION permissões no esquema.

Comentários

sp_columns segue os requisitos para identificadores delimitados. Para obter mais informações, consulte Identificadores de banco de dados.

Exemplos

Os exemplos de código do Transact-SQL deste artigo usa o banco de dados de exemplo AdventureWorks2022 ou AdventureWorksDW2022, que pode ser baixado da home page Microsoft SQL Server Samples and Community Projects.

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

USE AdventureWorks2022;
GO

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

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

USE AdventureWorksDW2022;
GO

EXEC sp_columns
    @table_name = N'DimEmployee',
    @table_owner = N'dbo';