sp_indexes (Transact-SQL)
適用対象: SQL Server
指定されたリモート テーブルに関するインデックス情報を返します。
構文
sp_indexes
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ , [ @index_name = ] N'index_name' ]
[ , [ @is_unique = ] is_unique ]
[ ; ]
引数
[ @table_server = ] N'table_server'
テーブル情報が要求されている SQL Server を実行しているリンク サーバーの名前。 @table_server は sysname で、既定値はありません。
[ @table_name = ] N'table_name'
インデックス情報を提供するリモート テーブルの名前。 @table_name は sysname で、既定値は NULL
です。 NULL
場合は、指定したデータベース内のすべてのテーブルが返されます。
[ @table_schema = ] N'table_schema'
テーブル スキーマを指定します。 @table_schema は sysname で、既定値は NULL
です。 SQL Server 環境では、この値はテーブル所有者に対応します。
[ @table_catalog = ] N'table_catalog'
@table_nameが存在するデータベースの名前。 @table_catalog は sysname で、既定値は NULL
です。 NULL
場合、@table_catalogは既定で master
に設定されます。
[ @index_name = ] N'index_name'
情報が要求されるインデックスの名前。 @index_name は sysname で、既定値は NULL
です。
[ @is_unique = ] is_unique
情報を返すインデックスの種類。 @is_unique は ビットであり、次のいずれかの値を指定できます。
値 | 説明 |
---|---|
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
リンク サーバー上のAdventureWorks2022
データベースのEmployees
テーブルからすべてのインデックス情報を返します。
EXEC sp_indexes @table_server = 'Seattle1',
@table_name = 'Employee',
@table_schema = 'HumanResources',
@table_catalog = 'AdventureWorks2022';