INDEX_COL (Transact-SQL)
Returns the indexed column name. Returns NULL for XML indexes.
Transact-SQL Syntax Conventions
Syntax
INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ]
table_or_view_name', index_id , key_id )
Arguments
- database_name
Is the name of the database.
- schema_name
Is the name of the schema to which the index belongs.
- table_or_view_name
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.
- index_id
Is the ID of the index. index_ID is int.
- key_id
Is the index key column position. key_ID is int.
Return Types
nvarchar (128)
Exceptions
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.
Examples
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 PK_SalesOrderDetail_SalesOrderID_LineNumber
.
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
See Also
Reference
Expressions (Transact-SQL)
Metadata Functions (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
Help and Information
Getting SQL Server 2005 Assistance
Change History
Release | History |
---|---|
17 July 2006 |
|