INDEXPROPERTY (Transact-SQL)

Retorna o índice nomeado ou valor de propriedade de estatísticas de um número de identificação de tabela, índice ou nome de estatísticas e nome de propriedade especificados. Retorna NULL para índices XML.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

INDEXPROPERTY ( object_ID , index_or_statistics_name , property ) 

Argumentos

  • object_ID
    É uma expressão que contém o número de identificação de objeto da tabela ou exibição indexada para a qual fornecer as informações de propriedade de índice. object_ID é int.

  • index_or_statistics_name
    É uma expressão que contém o nome do índice ou estatísticas para o qual retornar as informações de propriedade.index_or_statistics_name é nvarchar(128).

  • property
    É uma expressão que contém o nome da propriedade de banco de dados a ser retornada.property é varchar(128) e pode ser um desses valores.

    ObservaçãoObservação

    A não ser indicação contrária, NULL é retornado quando property não é um nome de propriedade válido, object_ID não é uma ID de objeto válida, object_ID é um tipo de objeto sem suporte para a propriedade especificada ou o chamador não tem permissão para exibir os metadados do objeto.

    Propriedade

    Descrição

    Valor

    IndexDepth

    Profundidade do índice.

    Número de níveis de índice.

    NULL = O índice XML ou saída não é válido.

    IndexFillFactor

    Valor do fator de preenchimento usado quando o índice foi criado ou reconstruído pela última vez.

    Fator de preenchimento

    IndexID

    ID de índice do índice em uma tabela ou exibição indexada especificada.

    ID de índice

    IsAutoStatistics

    Estatísticas foram geradas pela opção AUTO_CREATE_STATISTICS de ALTER DATABASE.

    1 = Verdadeiro

    0 = Falso ou índice XML.

    IsClustered

    O índice é clusterizado.

    1 = Verdadeiro

    0 = Falso ou índice XML.

    IsDisabled

    O índice está desabilitado.

    1 = Verdadeiro

    0 = Falso

    NULL = A entrada não é válida.

    IsFulltextKey

    O índice é a chave de texto completo para uma tabela.

    1 = Verdadeiro

    0 = Falso ou índice XML.

    NULL = A entrada não é válida.

    IsHypothetical

    O índice é hipotético e não pode ser usado diretamente como um caminho de acesso de dados. Os índices hipotéticos retêm estatísticas do nível de coluna e são mantidos e usados pelo Orientador de Otimização do Mecanismo de Banco de Dados.

    1 = Verdadeiro

    0 = Falso ou índice XML

    NULL = A entrada não é válida.

    IsPadIndex

    O índice especifica o espaço a ser deixado aberto em cada nó interior.

    1 = Verdadeiro

    0 = Falso ou índice XML.

    IsPageLockDisallowed

    Valor de bloqueio de página definido pela opção ALLOW_PAGE_LOCKS de ALTER INDEX.

    1 = O bloqueio de página não é permitido.

    0 = O bloqueio de página é permitido.

    NULL = A entrada não é válida.

    IsRowLockDisallowed

    Valor de bloqueio de linha definido pela opção ALLOW_ROW_LOCKS de ALTER INDEX.

    1 = O bloqueio de linha não é permitido.

    0 = O bloqueio de linha é permitido.

    NULL = A entrada não é válida.

    IsStatistics

    index_or_statistics_name são as estatísticas criadas pela instrução CREATE STATISTICS ou pela opção AUTO_CREATE_STATISTICS de ALTER DATABASE.

    1 = Verdadeiro

    0 = Falso ou índice XML.

    IsUnique

    O índice é exclusivo.

    1 = Verdadeiro

    0 = Falso ou índice XML.

Tipos de retorno

int

Exceções

Retorna NULL para erro ou caso um chamador não tenha permissão para exibir o objeto.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais ele recebeu permissão. Isso significa que as funções internas emissoras de metadados, como INDEXPROPERTY, podem retornar NULL se o usuário não tiver permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados e Solucionando problemas de visibilidade de metadados.

Exemplos

O exemplo a seguir retorna os valores para as propriedades IsClustered, IndexDepthe IndexFillFactor para o índice PK_Employee_EmployeeID da tabela Employee.

USE AdventureWorks2008R2;
GO
SELECT 
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IsClustered')AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexFillFactor') AS [Fill Factor];
GO

Aqui está o conjunto de resultados:

Is Clustered Index Depth Fill Factor 
------------ ----------- ----------- 
1            2           0

(1 row(s) affected)