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';