sys.index_columns(Transact SQL)sys.index_columns (Transact-SQL)

적용 대상:Applies to: 예 SQL ServerSQL Server (지원 되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예로Azure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW)yesAzure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW) 예로병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse적용 대상:Applies to: 예 SQL ServerSQL Server (지원 되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예로Azure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW)yesAzure Synapse Analytics(SQL DW)Azure Synapse Analytics (SQL DW) 예로병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse

열 하나를 포함 하는 열에는 열 을 포함 합니다.Contains one row per column that is part of a sys.indexes index or unordered table (heap).

열 이름Column name 데이터 형식Data type DescriptionDescription
object_idobject_id intint 인덱스가 정의되는 개체의 ID입니다.ID of the object the index is defined on.
index_idindex_id intint 열이 정의되는 인덱스의 ID입니다.ID of the index in which the column is defined.
index_column_idindex_column_id intint 인덱스 열의 ID입니다.ID of the index column. index_column_idindex_id내 에서만 고유 합니다.index_column_id is unique only within index_id.
column_idcolumn_id intint Object_id열의 ID입니다.ID of the column in object_id.

0 = 비클러스터형 인덱스의 RID(행 식별자)0 = Row Identifier (RID) in a nonclustered index.

column_idobject_id내 에서만 고유 합니다.column_id is unique only within object_id.
key_ordinalkey_ordinal tinyinttinyint 키 열 집합 내에서의 서수(1부터 시작)입니다.Ordinal (1-based) within set of key-columns.

0 = 키 열이 아니거나, XML 인덱스, columnstore 인덱스 또는 공간 인덱스입니다.0 = Not a key column, or is an XML index, a columnstore index, or a spatial index.

참고: 기본 열을 비교할 수 없기 때문에 XML 또는 공간 인덱스는 키가 될 수 없습니다. 즉, 해당 값을 정렬할 수 없습니다.Note: An XML or spatial index cannot be a key because the underlying columns are not comparable, meaning that their values cannot be ordered.
partition_ordinalpartition_ordinal tinyinttinyint 분할 열 집합 내에 있는 서수(1부터 시작)입니다.Ordinal (1-based) within set of partitioning columns. 클러스터형 columnstore 인덱스는 하나의 분할 열만 가질 수 있습니다.A clustered columnstore index can have at most 1 partitioning column.

0 = 분할 열 아님0 = Not a partitioning column.
is_descending_keyis_descending_key bitbit 1 = 인덱스 키 열이 내림차순으로 정렬됩니다.1 = Index key column has a descending sort direction.

0 = 인덱스 키 열이 오름차순으로 정렬되거나 열이 columnstore 또는 해시 인덱스의 일부입니다.0 = Index key column has an ascending sort direction, or the column is part of a columnstore or hash index.
is_included_columnis_included_column bitbit 1 = 열이 CREATE INDEX INCLUDE 절을 사용하여 인덱스에 추가된 키가 아닌 열이거나 columnstore 인덱스의 일부인 열입니다.1 = Column is a nonkey column added to the index by using the CREATE INDEX INCLUDE clause, or the column is part of a columnstore index.

0 = 열이 포괄 열이 아닙니다.0 = Column is not an included column.

클러스터링 키의 일부 이므로 암시적으로 추가 된 열은 sys. index_columns에 나열 되지 않습니다.Columns implicitly added because they are part of the clustering key are not listed in sys.index_columns.

분할 열이어서 암시적으로 추가된 열은 0으로 반환됩니다.Columns implicitly added because they are a partitioning column are returned as 0.
column_store_order_ordinalcolumn_store_order_ordinal
적용 대상: Azure SQL Data Warehouse (미리 보기)Applies to: Azure SQL Data Warehouse (preview)
tinyinttinyint 순서가 지정 된 클러스터형 columnstore 인덱스의 순서 열 집합 내에서의 서 수 (1부터 기반)입니다.Ordinal (1-based) within set of order columns in an ordered clustered columnstore index.

사용 권한Permissions

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.For more information, see Metadata Visibility Configuration.

예제Examples

다음 예는 Production.BillOfMaterials 테이블에 대한 모든 인덱스 및 인덱스 열을 반환합니다.The following example returns all indexes and index columns for the table 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');  
  

결과 집합은 다음과 같습니다.Here is the result set.

  
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)  
  

참고 항목See Also

Transact-sql)(개체 카탈로그 뷰 Object Catalog Views (Transact-SQL)
Transact-sql)(카탈로그 뷰 Catalog Views (Transact-SQL)
sys.debug (Transact-sql) sys.indexes (Transact-SQL)
sys. 개체 (Transact-sql) sys.objects (Transact-SQL)
CREATE INDEX(Transact-SQL) CREATE INDEX (Transact-SQL)
(Transact-sql) sys.columns (Transact-SQL)
SQL Server 시스템 카탈로그 쿼리에 대한 질문과 대답Querying the SQL Server System Catalog FAQ