INDEX_COL (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure 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。 有关详细信息,请参阅 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)