Share via


INDEX_COL (Transact-SQL)

インデックス付きの列名を返します。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 のデータ型は int です。

戻り値の型

nvarchar (128)

例外

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

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

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

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

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

以下に結果セットを示します。

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