INDEX_COL (Transact-SQL)
Gibt den Namen einer indizierten Spalte zurück. Gibt für XML-Indizes NULL zurück.
Syntax
INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ]
table_or_view_name', index_id , key_id )
Argumente
database_name
Ist der Name der Datenbank.schema_name
Ist der Name des Schemas, zu dem der Index gehört.table_or_view_name
Der Name der Tabelle oder der indizierten Sicht. table_or_view_name muss in einfache Anführungszeichen gesetzt werden und kann durch den Datenbanknamen und den Schemanamen voll qualifiziert werden.index_id
Die ID des Indexes. index_ID ist ein Wert vom Datentyp int.key_id
Die Position der Indexschlüsselspalten. key_ID ist ein Wert vom Datentyp int.
Rückgabetypen
nvarchar (128)
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. INDEX_COL, 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 und unter Behandlung von Problemen bei der Sichtbarkeit von Metadaten.
Beispiele
A. Verwenden von INDEX_COL für die Rückgabe eines Indexspaltennamens
Im folgenden Beispiel werden die Spaltennamen der beiden Schlüsselspalten im Index PK_SalesOrderDetail_SalesOrderID_LineNumber zurückgegeben.
USE AdventureWorks;
GO
SELECT
INDEX_COL (N'AdventureWorks.Sales.SalesOrderDetail', 1,1) AS
[Index Column 1],
INDEX_COL (N'AdventureWorks.Sales.SalesOrderDetail', 1,2) AS
[Index Column 2]
;
GO
Im Folgenden wird das Resultset aufgeführt:
Index Column 1 Index Column 2
-----------------------------------------------
SalesOrderID SalesOrderDetailID