INDEXPROPERTY (Transact-SQL)
Gibt den benannten Index- oder Statistikeigenschaftswert für eine angegebene Tabellenidentifikationsnummer (Tabellen-ID), den angegebenen Index- oder Statistiknamen und den angegebenen Eigenschaftsnamen zurück. Gibt für XML-Indizes NULL zurück.
Transact-SQL-Syntaxkonventionen
Syntax
INDEXPROPERTY ( object_ID , index_or_statistics_name , property )
Argumente
object_ID
Ein Ausdruck, der die Objekt-ID der Tabelle oder indizierten Sicht enthält, für die Indexeigenschafteninformationen bereitgestellt werden sollen. object_ID ist vom Datentyp int.index_or_statistics_name
Ein Ausdruck, der den Namen des Index oder der Statistik enthält, für den bzw. die Eigenschafteninformationen zurückgegeben werden sollen. index_or_statistics_name ist vom Datentyp nvarchar(128).property
Ein Ausdruck, der den Namen der zurückzugebenden Datenbankeigenschaft enthält. property ist vom Datentyp varchar(128). Die folgenden Werte sind möglich:Hinweis Wenn nicht anders angegeben, wird NULL zurückgegeben, wenn property kein gültiger Eigenschaftsname ist, object_ID keine gültige Objekt-ID ist, object_ID ein nicht unterstützter Objekttyp für die angegebene Eigenschaft ist oder der Aufrufer nicht über die Berechtigung zum Anzeigen der Metadaten des Objekts verfügt.
Eigenschaft
Beschreibung
Wert
IndexDepth
Schachtelungstiefe des Indexes.
Anzahl von Indexebenen.
NULL = Ungültiger XML-Index oder ungültige Eingabe.
IndexFillFactor
Der beim Erstellen oder letzten Neuerstellen des Indexes verwendete Füllfaktor.
Füllfaktor
IndexID
Index-ID des Indexes einer angegebenen Tabelle oder indizierten Sicht.
IndexID
IsAutoStatistics
Statistiken wurden durch die Option AUTO_CREATE_STATISTICS von ALTER DATABASE erzeugt.
1 = True
0 = False oder XML-Index.
IsClustered
Der Index ist gruppiert.
1 = True
0 = False oder XML-Index.
IsDisabled
Der Index ist deaktiviert.
1 = Wahr
0 = Falsch
NULL = Ungültige Eingabe.
IsFulltextKey
Index ist der Schlüssel für die Volltext- und semantische Indizierung für eine Tabelle.
1 = True
0 = False oder XML-Index.
NULL = Ungültige Eingabe.
IsHypothetical
Der Index ist hypothetisch und kann nicht direkt als Datenzugriffspfad verwendet werden. Hypothetische Indizes enthalten Statistiken auf Spaltenebene und werden vom Datenbankmodul-Optimierungsratgeber verwaltet und verwendet.
1 = True
0 = Falsch oder XML-Index
NULL = Ungültige Eingabe.
IsPadIndex
Der Index gibt den Speicherplatz an, der auf jedem inneren Knoten freigelassen werden soll.
1 = True
0 = False oder XML-Index.
IsPageLockDisallowed
Der Wert für Seitensperren wird von der Option ALLOW_PAGE_LOCKS von ALTER INDEX festgelegt.
1 = Seitensperren sind nicht zulässig.
0 = Seitensperren sind zulässig.
NULL = Ungültige Eingabe.
IsRowLockDisallowed
Der Wert für Zeilensperren wird von der Option ALLOW_ROW_LOCKS von ALTER INDEX festgelegt.
1 = Zeilensperren sind nicht zulässig.
0 = Zeilensperren sind zulässig.
NULL = Ungültige Eingabe.
IsStatistics
index_or_statistics_name sind Statistiken, die durch die CREATE STATISTICS-Anweisung oder die AUTO_CREATE_STATISTICS-Option von ALTER DATABASE erstellt werden.
1 = True
0 = False oder XML-Index.
IsUnique
Der Index ist eindeutig.
1 = True
0 = False oder XML-Index.
IsColumnstore
Index ist ein speicheroptimierter xVelocity-columnstore-Index.
1 = True
0 = False
Rückgabetypen
int
Ausnahmen
Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.
Ein Benutzer kann nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Dies bedeutet, dass Metadaten ausgebende integrierte Funktionen, z. B. INDEXPROPERTY, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt keine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.
Beispiele
Im folgenden Beispiel werden die Werte für die Eigenschaften IsClustered, IndexDepth und IndexFillFactor für den PK_Employee_BusinessEntityID-Index der Employee-Tabelle zurückgegeben.
USE AdventureWorks2012;
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
Im Folgenden wird das Resultset aufgeführt:
Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1 2 0
(1 row(s) affected)
Siehe auch
Verweis
sys.index_columns (Transact-SQL)
sys.stats_columns (Transact-SQL)