Compartilhar via


sp_indexes (Transact-SQL)

Aplica-se a: SQL Server

Retorna informações de índice da tabela remota especificada.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
sp_indexes [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]   
     [ , [ @table_catalog = ] 'table_db' ]   
     [ , [ @index_name = ] 'index_name' ]   
     [ , [ @is_unique = ] 'is_unique' ]  

Argumentos

@table_server= [ ] 'table_server'
É o nome de um servidor vinculado que executa o SQL Server para o qual as informações da tabela estão sendo solicitadas. table_server é sysname, sem padrão.

@table_name= [ ] 'table_name'
É o nome da tabela remota para a qual as informações de índice devem ser fornecidas. table_name é sysname, com um padrão de NULL. Se NULL, todas as tabelas no banco de dados especificado serão retornadas.

@table_schema= [ ] 'table_schema'
Especifica o esquema de tabela. No ambiente do SQL Server, isso corresponde ao proprietário da tabela. table_schema é sysname, com um padrão de NULL.

@table_catalog= [] 'table_db'
É o nome do banco de dados no qual table_name reside. table_db é sysname, com um padrão de NULL. Se NULL, table_db padrão será master.

@index_name= [] 'index_name'
É o nome do índice para o qual as informações estão sendo solicitadas. index é sysname, com um padrão de NULL.

@is_unique= [ ] 'is_unique'
É o tipo de índice para o qual as informações devem ser retornadas. is_unique é bit, com um padrão de NULL, e pode ser um dos seguintes valores.

Valor Description
1 Retorna informações sobre índices exclusivos.
0 Retorna informações sobre índices que não são exclusivos.
NULO Retorna informações sobre todos os índices.

Conjuntos de resultados

Nome da coluna Tipo de dados Descrição
TABLE_CAT sysname Nome do banco de dados onde a tabela especificada reside.
TABLE_SCHEM sysname Esquema para a tabela.
TABLE_NAME sysname Nome da tabela remota.
NON_UNIQUE smallint Se o índice é exclusivo ou não exclusivo:

0 = Exclusivo

1 = Não exclusivo
INDEX_QUALIFER sysname Nome do proprietário do índice. Alguns produtos DBMS permitem que outros usuários, que não o proprietário da tabela, criam índices. No SQL Server, essa coluna é sempre igual a TABLE_NAME.
INDEX_NAME sysname Nome do índice.
TYPE smallint Tipo de índice:

0 = Estatísticas de uma tabela

1 = Clusterizado

2 = Com hash

3 = Outro
ORDINAL_POSITION int Posição ordinal da coluna no índice. A primeira coluna no índice é 1. Esta coluna sempre retorna um valor.
COLUMN_NAME sysname É o nome correspondente da coluna para cada coluna do TABLE_NAME retornado.
ASC_OR_DESC varchar É a ordem usada na ordenação:

A = Crescente

D = Decrescente

NULL = Não aplicável

O SQL Server sempre retorna A.
CARDINALITY int É o número de linhas na tabela ou valores exclusivos no índice.
PAGES int É o número de páginas para armazenar o índice ou a tabela.
FILTER_CONDITION Nvarchar(4000) O SQL Server não retorna um valor.

Permissões

Requer a permissão SELECT no esquema.

Exemplos

O exemplo a seguir retorna todas as informações de índice da tabela Employees do banco de dados AdventureWorks2022 do servidor vinculado Seattle1.

EXEC sp_indexes @table_server = 'Seattle1',   
   @table_name = 'Employee',   
   @table_schema = 'HumanResources',  
   @table_catalog = 'AdventureWorks2022';  

Confira também

Procedimentos armazenados de consultas distribuídas (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)