Partilhar via


sp_columns (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Devolve informação de coluna para os objetos especificados que podem ser consultados no ambiente atual.

Transact-SQL convenções de sintaxe

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 ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

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

O nome do objeto que é usado para devolver informações do catálogo. @table_name pode ser uma tabela, vista ou outro objeto com colunas, como funções com valores de tabela. @table_name é nvarchar(384), sem padrão. É suportada a correspondência de padrões wildcard.

[ @table_owner = ] N'table_owner'

O proprietário do objeto que é usado para devolver informação do catálogo. @table_owner é nvarchar(384), com um padrão de NULL. É suportada a correspondência de padrões wildcard. Se @table_owner não for especificado, aplicam-se as regras padrão de visibilidade de objetos do SGBD subjacente.

Se o utilizador atual possuir um objeto com o nome especificado, as colunas desse objeto são devolvidas. Se @table_owner não for especificado e o utilizador atual não possuir um objeto com a @table_name especificada, sp_columns procura um objeto com a @table_name especificada pertencente ao dono da base de dados. Se existir uma, as colunas desse objeto são devolvidas.

[ @table_qualifier = ] N'table_qualifier'

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

O nome do qualificador do objeto. @table_qualifier é sysname, com um padrão de NULL. Vários produtos SGBD suportam nomeação em três partes para objetos (<qualifier>.<owner>.<name>). No SQL Server, esta coluna representa o nome da base de dados. Em alguns produtos, representa o nome do servidor do ambiente de base de dados do objeto.

[ @column_name = ] N'column_name'

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

[ @ODBCVer = ] ODBCVer

A versão do ODBC que está a ser utilizada. @ODBCVer é int, com um padrão de 2. Isto indica a Versão 2 do ODBC. Os valores válidos são 2 ou 3. Para as diferenças de comportamento entre as versões 2 e 3, consulte a especificação ODBC SQLColumns .

Valores de código de retorno

Nenhum.

Conjunto de resultados

O sp_columns procedimento armazenado por catálogo é equivalente ao SQLColumns ODBC. Os resultados devolvidos estão ordenados por TABLE_QUALIFIER, TABLE_OWNER, e TABLE_NAME.

Nome da coluna Tipo de dados Description
TABLE_QUALIFIER sysname Nome do qualificador do objeto. Este campo pode ser NULL.
TABLE_OWNER sysname Nome do proprietário do objeto. Este campo devolve sempre um valor.
TABLE_NAME sysname Nome do objeto. Este campo devolve sempre um valor.
COLUMN_NAME sysname Nome da coluna, para cada coluna do TABLE_NAME devolvido. Este campo devolve sempre um valor.
DATA_TYPE smallint Código inteiro para o tipo de dado ODBC. Se este tipo de dados não puder ser mapeado para um tipo ODBC, é NULL. O nome do tipo de dado nativo é devolvido na TYPE_NAME coluna.
TYPE_NAME sysname Cadeia que representa um tipo de dado. O SGBD subjacente apresenta este nome de tipo de dado.
PRECISION int Número de dígitos significativos. O valor de retorno da PRECISION coluna está na base 10.
LENGTH int Tamanho de 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 a nulidade.

1 = NULL é possível.
0 = NÃO NULL.
REMARKS Varchar (254) Este campo devolve NULLsempre .
COLUMN_DEF Nvarchar(4000) Valor padrão da coluna.
SQL_DATA_TYPE smallint Valor do tipo de dado SQL tal como aparece no campo TYPE do descritor. Esta coluna é igual à DATA_TYPE coluna, exceto pelos tipos de dados data-hora e intervalo SQL-92. Esta coluna devolve sempre um valor.
SQL_DATETIME_SUB smallint Código de subtipo para tipos de dados data-hora e intervalo SQL-92. Para outros tipos de dados, esta coluna devolve NULL.
CHAR_OCTET_LENGTH int Comprimento máximo em bytes de uma coluna de tipo de dado de carácter ou inteiro. Para todos os outros tipos de dados, esta coluna devolve NULL.
ORDINAL_POSITION int Posição ordinal da coluna no objeto. A primeira coluna do objeto é 1. Esta coluna devolve sempre um valor.
IS_NULLABLE Varchar (254) Nulidade da coluna no objeto. As regras ISO são seguidas para determinar a nulidade. Um SGBD compatível com ISO SQL não pode devolver uma string vazia.

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

Esta coluna devolve uma cadeia de comprimento zero se a nulidade for desconhecida.

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

1 Para mais informações, consulte Visão Geral ODBC.

Permissions

Requisitos SELECT e VIEW DEFINITION permissões no esquema.

Observações

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

Examples

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

O exemplo seguinte devolve informação de coluna para uma tabela especificada.

USE AdventureWorks2022;
GO

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

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

O exemplo seguinte devolve informação de coluna para uma tabela especificada.

USE AdventureWorksDW2022;
GO

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