sys.index_columns (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Berisi satu baris per kolom yang merupakan bagian dari indeks sys.indexes atau tabel yang tidak berurut (heap).
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
| object_id | Int | ID objek tempat indeks ditentukan. |
| 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 nonkluster. column_id hanya unik dalam object_id. |
| key_ordinal | tinyint | Ordinal (berbasis 1) dalam kumpulan 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 | tinyint | Ordinal (berbasis 1) dalam kumpulan kolom partisi. Indeks penyimpan kolom berkluster dapat memiliki paling banyak 1 kolom partisi. 0 = Bukan kolom partisi. |
| 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 penyimpan kolom atau indeks hash. |
| is_included_column | bit | 1 = Kolom adalah kolom nonkunci 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 dalam sys.index_columns. Kolom ditambahkan secara implisit karena merupakan kolom pemartisian dikembalikan sebagai 0. |
column_store_order_ordinal Berlaku untuk: Azure Synapse Analytics (pratinjau) |
tinyint | Ordinal (berbasis 1) dalam sekumpulan kolom pesanan dalam indeks penyimpan kolom berkluster yang diurutkan. |
Izin
Visibilitas metadata dalam tampilan katalog terbatas pada securable yang dimiliki pengguna atau di mana pengguna telah diberi beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh
Contoh berikut mengembalikan semua indeks dan kolom indeks untuk tabel 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');
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)
Lihat juga
Tampilan Katalog Objek (SQL Bertransaksi)
Tampilan Katalog (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
CREATE INDEX (Transact-SQL)
sys.columns (Transact-SQL)
Mengkueri FAQ Katalog Sistem SQL Server