共用方式為


sys.index_columns (Transact-SQL)

sys.indexes 索引或未排序的資料表 (堆積) 中,每個資料行各有一個資料列。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

資料行名稱

資料類型

描述

object_id

int

索引定義所在的物件識別碼。

index_id

int

資料行定義所在的索引識別碼。

index_column_id

int

索引資料行的識別碼。 index_column_id 只有在 index_id 中才是唯一的。

column_id

int

object_id 中的資料行識別碼。

0 = 非叢集索引中的資料列識別碼 (RID)。

column_id 只有在 object_id 中才是唯一的。

key_ordinal

tinyint

索引鍵資料行組中的序數 (以 1 為基底)。

0 = 不是索引鍵資料行,或是 XML 索引、資料行存放區索引或空間索引。

注意

XML 或空間索引不得為索引鍵,因為基礎資料行無法比較,也就是說無法排序它們的值。

partition_ordinal

tinyint

分割區資料行組中的序數 (以 1 為基底)。 叢集資料行存放區索引最多可以有 1 個分割區資料行。

0 = 不是分割區資料行。

is_descending_key

bit

1 = 索引鍵資料行是以遞減方式排序。

0 = 索引鍵資料行是以遞增方式排序,或者資料行是資料行存放區索引或雜湊索引的一部分。

is_included_column

bit

1 = 資料行是利用 CREATE INDEX INCLUDE 子句加入索引中的非索引鍵資料行,或者資料行是資料行存放區索引的一部分。

0 = 資料行並未加入。

因為是叢集索引鍵一部分而隱含新增的資料行未列在 sys.index_columns 中。

因為是分割區資料行而隱含新增的資料行會當做 0 傳回。

權限

目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。如需詳細資訊,請參閱<中繼資料可見性組態>。

範例

下列範例會傳回 Production.BillOfMaterials 資料表的所有索引和索引資料行。

USE AdventureWorks2012;
GO
SELECT i.name AS index_name
    ,COL_NAME(ic.object_id,ic.column_id) AS column_name
    ,ic.index_column_id
    ,ic.key_ordinal
,ic.is_included_column
FROM sys.indexes AS i
INNER JOIN sys.index_columns AS ic 
    ON i.object_id = ic.object_id AND i.index_id = ic.index_id
WHERE i.object_id = OBJECT_ID('Production.BillOfMaterials');

以下為結果集:

index_name                                                 column_name        index_column_id key_ordinal is_included_column
---------------------------------------------------------- -----------------  --------------- ----------- -------------
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate ProductAssemblyID  1               1           0
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate ComponentID        2               2           0
AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate StartDate          3               3           0
PK_BillOfMaterials_BillOfMaterialsID                       BillOfMaterialsID  1               1           0
IX_BillOfMaterials_UnitMeasureCode                         UnitMeasureCode    1               1           0

(5 row(s) affected)

請參閱

參考

物件目錄檢視 (Transact-SQL)

目錄檢視 (Transact-SQL)

sys.indexes (Transact-SQL)

sys.objects (Transact-SQL)

CREATE INDEX (Transact-SQL)

sys.columns (Transact-SQL)

概念

查詢 SQL Server 系統目錄 FAQ