INDEX_COL (Transact-SQL)

返回索引列名称。对于 XML 索引,返回 NULL。

主题链接图标Transact-SQL 语法约定

语法

INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ]
    table_or_view_name', index_id , key_id ) 

参数

  • database_name
    数据库的名称。

  • schema_name
    该索引所属架构的名称。

  • table_or_view_name
    表或索引视图的名称。table_or_view_name 必须使用单引号分隔,并且可由数据库名称和架构名称完全限定。

  • index_id
    索引的 ID。index_ID 的数据类型为 int。

  • key_id
    索引键列的位置。key_ID 的数据类型为 int。

返回类型

nvarchar (128)

异常

出现错误时或调用方没有权限查看对象时,将返回 NULL。

用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。这意味着,如果用户对对象没有任何权限,则元数据生成的内置函数(如 INDEX_COL)可能返回 NULL。有关详细信息,请参阅元数据可见性配置元数据可见性故障排除

示例

A. 使用 INDEX_COL 返回一个索引列名

以下示例返回索引 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

下面是结果集:

Index Column 1      Index Column 2
-----------------------------------------------
SalesOrderID        SalesOrderDetailID