INDEX_COL (Transact-SQL)

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

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 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 AdventureWorks2012;
GO
SELECT 
    INDEX_COL (N'AdventureWorks2012.Sales.SalesOrderDetail', 1,1) AS
        [Index Column 1], 
    INDEX_COL (N'AdventureWorks2012.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)