Partilhar via


sp_indexes (Transact-SQL)

Aplica-se: SQL Server

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

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@table_server [ = ] N'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 = ] N'table_name'

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

@table_schema [ = ] N'table_schema'

Especifica o esquema de tabela. @table_schema é sysname, com um padrão de NULL. No ambiente do SQL Server, esse valor corresponde ao proprietário da tabela.

@table_catalog [ = ] N'table_catalog'

O nome do banco de dados no qual @table_name reside. @table_catalog é sysname, com um padrão de NULL. Se NULL, @table_catalog o padrão é master.

@index_name [ = ] N'index_name'

O nome do índice para o qual as informações estão sendo solicitadas. @index_name é sysname, com um padrão de NULL.

@is_unique [ = ] is_unique

O tipo de índice para o qual retornar informações. @is_unique é bit e pode ser um dos seguintes valores.

Valor Descrição
1 Retorna informações sobre índices exclusivos.
0 Retorna informações sobre índices que não são exclusivos.
NULL (padrão) Retorna informações sobre todos os índices.

Conjunto 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 = Único
1 = Não exclusivo
INDEX_QUALIFER sysname Nome do proprietário do índice. Alguns produtos do sistema de gerenciamento de banco de dados (DBMS) permitem que usuários diferentes do proprietário da tabela criem índices. No SQL Server, essa coluna é sempre igual ao TABLE_NAME.
INDEX_NAME sysname Nome do índice.
TYPE smallint Tipo de índice:

0 = Estatísticas de uma tabela
1 = Agrupado
2 = Com hash
3 = Outros
ORDINAL_POSITION int Posição ordinal da coluna no índice. A primeira coluna do í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 = Ascendente
D = Descendente
NULL = Não aplicável

O SQL Server sempre retorna A.
CARDINALITY int O número de linhas na tabela ou os valores exclusivos no índice.
PAGES int O número de páginas para armazenar o índice ou a tabela.
FILTER_CONDITION nvarchar(4000) 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';