INDEX_COL (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

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

Transact-SQL 语法约定

语法

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

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

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

以下示例返回索引 PK_SalesOrderDetail_SalesOrderID_LineNumber 中两个键列的列名。

USE AdventureWorks2022;  
GO  
SELECT   
    INDEX_COL (N'AdventureWorks2022.Sales.SalesOrderDetail', 1,1) AS  
        [Index Column 1],   
    INDEX_COL (N'AdventureWorks2022.Sales.SalesOrderDetail', 1,2) AS  
        [Index Column 2]  
;  
GO  

下面是结果集:

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

另请参阅

表达式(Transact-SQL)
元数据函数 (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)