INDEX_COL (Transact-SQL)

Devuelve el nombre de la columna indizada. Devuelve NULL para los índices XML.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

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