INDEX_COL (Transact-SQL)
返回索引列名称。对于 XML 索引,返回 NULL。
语法
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