sp_columns (Transact-SQL)
Retorna as informações de colunas das tabelas ou exibições especificadas que podem ser consultadas no ambiente atual.
Sintaxe
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Argumentos
[ @table_name=] object
É o nome da tabela ou exibição usada para retornar informações de catálogo. object_name é nvarchar(384), sem padrão. Há suporte para a correspondência de padrão curinga.[ @table_owner=] owner
É o proprietário do objeto da tabela ou exibição usada para retornar informações de catálogo. owner é nvarchar(384), com um padrão NULL. Há suporte para a correspondência de padrão curinga. Se owner não for especificado, serão aplicadas as regras de visibilidade de tabela ou exibição padrão do DBMS subjacente.Se o usuário atual possuir uma tabela ou exibição com o nome especificado, as colunas dessa tabela serão retornadas. Se owner não estiver especificado e o usuário atual não possuir uma tabela ou visualização com o object especificado, sp_columns procurará uma tabela ou exibição com o object especificado pertencente ao proprietário do banco de dados. Se existir, as colunas dessa tabela serão retornadas.
[ @table_qualifier=] qualifier
É o nome do qualificador da tabela ou exibição. qualifier é sysname, com um padrão NULL. Vários produtos de DBMS dão suporte à nomeação de três partes de tabelas (qualifier**.owner.**name). No SQL Server, 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.[ @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 porTABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
TABLE_QUALIFIER |
sysname |
Nome do qualificador da tabela ou exibição. Este campo pode ser NULL. |
TABLE_OWNER |
sysname |
Nome do proprietário da tabela ou exibição. 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 |
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 no comportamento de recursos do Mecanismo de Banco de Dados no SQL Server 2008. |
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 (Transact-SQL). |
1 Para obter mais informações, consulte a documentação do Microsoft ODBC.
Permissões
Requer a permissão SELECT no esquema.
Comentários
sp_columns segue os requisitos para os 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 AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';