sys.index_columns (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Berisi satu baris per kolom yang merupakan bagian dari indeks atau tabel yang tidak diurutkan (heap).

Nama kolom Jenis data Deskripsi
object_id int ID objek tempat indeks didefinisikan.
index_id int ID indeks tempat kolom ditentukan.
index_column_id int ID kolom indeks. index_column_id hanya unik dalam index_id.
column_id int ID kolom di object_id.

0 = Pengidentifikasi Baris (RID) dalam indeks nonclustered.

column_id hanya unik dalam object_id.
key_ordinal kecil Ordinal (berbasis 1) dalam sekumpulan kolom kunci.

0 = Bukan kolom kunci, atau merupakan indeks XML, indeks penyimpan kolom, atau indeks spasial.

Catatan: XML atau indeks spasial tidak dapat menjadi kunci karena kolom yang mendasar tidak sebanding, yang berarti bahwa nilainya tidak dapat diurutkan.
partition_ordinal kecil Ordinal (berbasis 1) dalam kumpulan kolom partisi. Indeks penyimpan kolom berkluster dapat memiliki paling banyak satu kolom partisi.

0 = Bukan kolom pemartisian.
is_descending_key bit 1 = Kolom kunci indeks memiliki arah pengurutan menurun.

0 = Kolom kunci indeks memiliki arah pengurutan naik, atau kolom adalah bagian dari penyimpanan kolom atau indeks hash.
is_included_column bit 1 = Kolom adalah kolom non-kunci yang ditambahkan ke indeks dengan menggunakan klausa CREATE INDEX INCLUDE, atau kolom adalah bagian dari indeks penyimpan kolom.

0 = Kolom bukan kolom yang disertakan.

Kolom ditambahkan secara implisit karena merupakan bagian dari kunci pengklusteran tidak tercantum di sys.index_columns.

Kolom ditambahkan secara implisit karena kolom partisi dikembalikan sebagai 0.
column_store_order_ordinal kecil Berlaku untuk: Azure Synapse Analytics dan SQL Server 2022 (16.x)
Ordinal (berbasis 1) dalam sekumpulan kolom pesanan dalam indeks penyimpan kolom berkluster yang diurutkan. Untuk informasi selengkapnya tentang indeks penyimpan kolom berkluster yang diurutkan, lihat Panduan desain indeks penyimpan kolom.

Izin

Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

Contoh berikut mengembalikan semua indeks dan kolom indeks untuk tabel Production.BillOfMaterials.

USE AdventureWorks2022;
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');

Berikut adalah hasil yang ditetapkan.

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)

Langkah berikutnya