INDEXPROPERTY (Transact-SQL)
指定されたテーブル ID 番号、インデックス名または統計名、およびプロパティ名の指定されたインデックスまたは統計プロパティ値を返します。XML インデックスに対して NULL を返します。
構文
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 = 無効な入力
IsHypothetical
インデックスは仮想的であり、データへのアクセス パスとして直接使用することはできません。仮想インデックスは、列レベルの統計を保持し、データベース エンジン チューニング アドバイザによって管理および使用されます。
1 = TRUE
0 = FALSE または XML インデックス
NULL = 無効な入力
IsPadIndex
インデックスは各内部ノード上で空けておく領域を指定します。
1 = TRUE
0 = FALSE または XML インデックス
IsPageLockDisallowed
ALTER INDEX の ALLOW_PAGE_LOCKS オプションによって設定されたページ ロックの値です。
1 = ページ ロックの禁止
0 = ページ ロックの許可
NULL = 無効な入力
IsRowLockDisallowed
ALTER INDEX の ALLOW_ROW_LOCKS オプションによって設定された行ロックの値です。
1 = 行ロックの禁止
0 = 行ロックの許可
NULL = 無効な入力
IsStatistics
index_or_statistics_name は、CREATE STATISTICS ステートメントまたは ALTER DATABASE の AUTO_CREATE_STATISTICS オプションによって作成された統計です。
1 = TRUE
0 = FALSE または XML インデックス
IsUnique
インデックスは一意です。
1 = TRUE
0 = FALSE または XML インデックス
戻り値の型
int
例外
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
ユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なリソースのメタデータのみを表示できます。つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (INDEXPROPERTY など) が NULL を返す可能性があります。詳細については、「メタデータ表示の構成」および「メタデータ表示のトラブルシューティング」を参照してください。
例
次の例では、Employee テーブルの PK_Employee_EmployeeID インデックスについて IsClustered、IndexDepth、および IndexFillFactor プロパティの値を返します。
USE AdventureWorks;
GO
SELECT
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_EmployeeID','IsClustered')AS [Is Clustered],
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_EmployeeID','IndexDepth') AS [Index Depth],
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_EmployeeID','IndexFillFactor') AS [Fill Factor];
GO
以下に結果セットを示します。
Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1 2 0
(1 row(s) affected)