sys.index_columns (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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 set hasilnya.
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)