次の方法で共有


INDEXPROPERTY (Transact-SQL)

指定されたテーブル ID 番号、インデックス名または統計名、およびプロパティ名の指定されたインデックスまたは統計プロパティ値を返します。 XML インデックスに対して NULL を返します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで)

トピック リンク アイコン Transact-SQL 構文表記規則

構文

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )

引数

  • object_ID
    インデックス プロパティ情報の提供元となるテーブルまたはインデックス付きビューのオブジェクト ID 番号を含む式です。 object_ID のデータ型は int です。

  • index_or_statistics_name
    返されるプロパティ情報の基となるインデックスまたは統計の名前を含む式です。 index_or_statistics_name のデータ型は nvarchar(128) です。

  • property
    返されるデータベース プロパティの名前を含む式です。 property のデータ型は varchar(128) で、次のいずれかの値を指定できます。

    注意

    property が有効なプロパティ名でない場合、object_ID が有効なオブジェクト ID でない場合、object_ID が指定したプロパティでサポートされていないオブジェクトの種類であった場合、または呼び出し側にオブジェクトのメタデータを表示する権限がない場合は、特に指定のない限り、NULL が返されます。

    プロパティ

    説明

    IndexDepth

    インデックスの深さです。

    インデックス レベルの数です。

    NULL = XML インデックスまたは無効な入力

    IndexFillFactor

    インデックスが作成されたとき、または最後に再構築されたときに使用された FILL FACTOR 値です。

    FILL FACTOR

    IndexID

    指定のテーブルまたはインデックス付きビュー上のインデックスの ID です。

    インデックス ID です。

    IsAutoStatistics

    ALTER DATABASE の AUTO_CREATE_STATISTICS オプションによって生成された統計です。

    1 = TRUE

    0 = FALSE または XML インデックス

    IsClustered

    インデックスはクラスター化されています。

    1 = TRUE

    0 = FALSE または XML インデックス

    IsDisabled

    インデックスは無効です。

    1 = TRUE

    0 = FALSE

    NULL = 入力は無効

    IsFulltextKey

    インデックスは、テーブルのフルテキストおよびセマンティック インデックス作成のキーです。

    1 = TRUE

    0 = FALSE または XML インデックス

    NULL = 無効な入力

    適用対象: SQL Server 2008 から SQL Server 2014。

    IsHypothetical

    インデックスは仮想的であり、データへのアクセス パスとして直接使用することはできません。 仮想インデックスは、列レベルの統計を保持し、データベース エンジン チューニング アドバイザーによって管理および使用されます。

    1 = TRUE

    0 = FALSE または XML インデックス

    NULL = 無効な入力

    IsPadIndex

    インデックスは各内部ノード上で空けておく領域を指定します。

    1 = TRUE

    0 = FALSE または XML インデックス

    適用対象: SQL Server 2008 から SQL Server 2014。

    IsPageLockDisallowed

    ALTER INDEX の ALLOW_PAGE_LOCKS オプションによって設定されたページ ロックの値です。

    1 = ページ ロックの禁止

    0 = ページ ロックの許可

    NULL = 無効な入力

    適用対象: SQL Server 2008 から SQL Server 2014。

    IsRowLockDisallowed

    ALTER INDEX の ALLOW_ROW_LOCKS オプションによって設定された行ロックの値です。

    1 = 行ロックの禁止

    0 = 行ロックの許可

    NULL = 無効な入力

    適用対象: SQL Server 2008 から SQL Server 2014。

    IsStatistics

    index_or_statistics_name は、CREATE STATISTICS ステートメントまたは ALTER DATABASE の AUTO_CREATE_STATISTICS オプションによって作成された統計です。

    1 = TRUE

    0 = FALSE または XML インデックス

    IsUnique

    インデックスは一意です。

    1 = TRUE

    0 = FALSE または XML インデックス

    IsColumnstore

    インデックスは xVelocity メモリ最適化列ストア インデックスです。

    1 = TRUE

    0 = FALSE

    適用対象: SQL Server 2012 から SQL Server 2014。

戻り値の型

int

例外

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

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

使用例

次の例では、AdventureWorks2012 データベースにある Employee テーブルの PK_Employee_BusinessEntityID インデックスについて IsClusteredIndexDepth、および IndexFillFactor プロパティの値を返します。

SELECT 
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IsClustered')AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_BusinessEntityID','IndexFillFactor') AS [Fill Factor];

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

Is Clustered Index Depth Fill Factor 
------------ ----------- ----------- 
1            2           0

(1 row(s) affected)

関連項目

参照

CREATE INDEX (Transact-SQL)

sys.indexes (Transact-SQL)

sys.index_columns (Transact-SQL)

sys.stats (Transact-SQL)

sys.stats_columns (Transact-SQL)

概念

統計