sp_indexes (Transact-SQL)

指定されたリモート テーブルに関するインデックス情報を返します。

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

構文

sp_indexes [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_db' ] 
     [ , [ @index_name = ] 'index_name' ] 
     [ , [ @is_unique = ] 'is_unique' ]

引数

  • [ @table_server = ] 'table_server'
    テーブル情報を要求している SQL Server を実行しているリンク サーバーの名前です。table_server のデータ型は sysname で、既定値はありません。

  • [ @table_name = ] 'table_name'
    インデックス情報を提供する対象のリモート テーブルの名前です。table_name のデータ型は sysname で、既定値は NULL です。NULL の場合、指定したデータベースのすべてのテーブルが返されます。

  • [ @table_schema = ] 'table_schema'
    テーブル スキーマを指定します。SQL Server 環境では、これはテーブル所有者に対応します。table_schema のデータ型は sysname で、既定値は NULL です。

  • [ @table_catalog = ] 'table_db'
    table_name が存在するデータベースの名前です。table_db のデータ型は sysname で、既定値は NULL です。NULL の場合、table_db は既定のデータベース master になります。

  • [ @index_name = ] 'index_name'
    情報を要求する対象のインデックスの名前です。index のデータ型は sysname で、既定値は NULL です。

  • [ @is_unique = ] 'is_unique'
    情報を返す対象のインデックスの種類です。is_unique のデータ型は bit で、既定値は NULL です。次のいずれかの値を指定できます。

    説明

    1

    一意なインデックスに関する情報を返します。

    0

    一意でないインデックスに関する情報を返します。

    NULL

    すべてのインデックスに関する情報を返します。

結果セット

列名

データ型

説明

TABLE_CAT

sysname

指定したテーブルが存在するデータベースの名前です。

TABLE_SCHEM

sysname

テーブルのスキーマです。

TABLE_NAME

sysname

リモート テーブルの名前です。

NON_UNIQUE

smallint

インデックスが一意であるかどうかを示します。

0 = 一意

1 = 一意ではない

INDEX_QUALIFER

sysname

インデックス所有者の名前です。DBMS 製品の中には、テーブル所有者以外のユーザーでもインデックスを作成できるものがあります。SQL Server では、この列は常に TABLE_NAME と同じです。

INDEX_NAME

sysname

インデックスの名前です。

TYPE

smallint

インデックスの種類です。

0 = テーブルの統計

1 = クラスター化

2 = ハッシュ化

3 = その他

ORDINAL_POSITION

int

インデックス内での列の序数です。インデックスの最初の列は 1 です。この列は常に値を返します。

COLUMN_NAME

sysname

返される TABLE_NAME の各列に対応する列名です。

ASC_OR_DESC

varchar

データを並べ替えるための照合順序です。

A = 昇順

D = 降順

NULL = 適用なし

SQL Server は常に A を返します。

CARDINALITY

int

テーブル内の行数またはインデックス内の一意な値の個数です。

PAGES

int

インデックスまたはテーブルを格納するページ数です。

FILTER_CONDITION

nvarchar(4000)

SQL Server では値は返されません。

権限

スキーマに対する SELECT 権限が必要です。

次の例は、Seattle1 リンク サーバー上の AdventureWorks2008R2 データベースの Employees テーブルからすべてのインデックス情報を返します。

EXEC sp_indexes @table_server = 'Seattle1', 
   @table_name = 'Employee', 
   @table_schema = 'HumanResources',
   @table_catalog = 'AdventureWorks2008R2'