Returns the indexed column name. Returns NULL for XML indexes.
Is the name of the database.
Is the name of the schema to which the index belongs.
Is the name of the table or indexed view. table_or_view_name must be delimited by single quotation marks and can be fully qualified by database name and schema name.
Is the ID of the index. index_ID is int.
Is the index key column position. key_ID is int.
Returns NULL on error or if a caller does not have permission to view the object.
In SQL Server 2005, a user can only view the metadata of securables that the user owns or on which the user has been granted permission. This means that metadata-emitting, built-in functions such as INDEX_COL may return NULL if the user does not have any permission on the object. For more information, see Metadata Visibility Configuration and Troubleshooting Metadata Visibility.
A. Using INDEX_COL to return an index column name
The following example returns the column names of the two key columns in the index
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
Here is the result set:
Index Column 1 Index Column 2 ----------------------------------------------- SalesOrderID SalesOrderDetailID