次の方法で共有


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 2005 を実行しているリンク サーバーの名前です。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 リンク サーバー上の AdventureWorks データベースの Employees テーブルからすべてのインデックス情報を返します。

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

参照

関連項目

分散クエリのストアド プロシージャ (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)

その他の技術情報

ユーザーとスキーマの分離

ヘルプおよび情報

SQL Server 2005 の参考資料の入手