sp_indexes (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'