INDEX_COL (Transact-SQL)
Devuelve el nombre de la columna indizada. Devuelve NULL para los índices XML.
Sintaxis
INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ]
table_or_view_name', index_id , key_id )
Argumentos
database_name
Es el nombre de la base de datos.schema_name
Es el nombre del esquema al que pertenece el índice.table_or_view_name
Es el nombre de la tabla o vista indizada. table_or_view_name debe estar delimitado por comillas simples y puede ser un nombre completo e incluir el nombre de la base de datos y el nombre del esquema.index_id
Es el Id. del índice. index_ID es de tipo int.key_id
Es la posición de la columna de clave de índice. key_ID es de tipo int.
Tipos de valor devueltos
nvarchar (128)
Excepciones
Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.
Un usuario sólo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como INDEX_COL, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto. Para obtener más información, vea Configuración de visibilidad de los metadatos y Solucionar problemas de visibilidad de los metadatos.
Ejemplos
A. Utilizar INDEX_COL para devolver un nombre de columna de índice
En el ejemplo siguiente se devuelven los nombres de columna de las dos columnas de clave del índice PK_SalesOrderDetail_SalesOrderID_LineNumber.
USE AdventureWorks2008R2;
GO
SELECT
INDEX_COL (N'AdventureWorks2008R2.Sales.SalesOrderDetail', 1,1) AS
[Index Column 1],
INDEX_COL (N'AdventureWorks2008R2.Sales.SalesOrderDetail', 1,2) AS
[Index Column 2]
;
GO
El conjunto de resultados es:
Index Column 1 Index Column 2
-----------------------------------------------
SalesOrderID SalesOrderDetailID