sys.index_columns (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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