次の方法で共有


INDEX_COL (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

インデックス付きの列名を返します。 XML インデックスに対して NULL を返します。

Transact-SQL 構文表記規則

構文

INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ]  
    table_or_view_name', index_id , key_id )   

引数

database_name
データベースの名前です。

schema_name
インデックスが組み込まれているスキーマの名前です。

table_or_view_name
テーブルまたはインデックス付きビューのスキーマです。 table_or_view_name 単一引用符で区切る必要があるあり、データベース名とスキーマ名で完全に修飾することができます。

index_id
インデックスの ID です。 index_ID intです。

key_id
インデックス キー列の位置です。 key_ID is int.

戻り値の型

nvarchar (128)

例外

エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。

ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。 つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (INDEX_COL など) が NULL を返す可能性があります。 詳細については、「 Metadata Visibility Configuration」を参照してください。

A. INDEX_COL を使用してインデックス列名を返す

この例では、インデックス PK_SalesOrderDetail_SalesOrderID_LineNumber の 2 つのキー列の列名を返します。

USE AdventureWorks2022;  
GO  
SELECT   
    INDEX_COL (N'AdventureWorks2022.Sales.SalesOrderDetail', 1,1) AS  
        [Index Column 1],   
    INDEX_COL (N'AdventureWorks2022.Sales.SalesOrderDetail', 1,2) AS  
        [Index Column 2]  
;  
GO  

結果セットは次のようになります。

Index Column 1      Index Column 2  
-----------------------------------------------  
SalesOrderID        SalesOrderDetailID  

参照

式 (Transact-SQL)
メタデータ関数 (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)