次の方法で共有


sp_indexes (Transact-SQL)

適用対象: SQL Server

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

Transact-SQL 構文表記規則

構文

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_serversysname で、既定値はありません。

[ @table_name = ] N'table_name'

インデックス情報を提供するリモート テーブルの名前。 @table_namesysname で、既定値は NULL です。 NULL場合は、指定したデータベース内のすべてのテーブルが返されます。

[ @table_schema = ] N'table_schema'

テーブル スキーマを指定します。 @table_schemasysname で、既定値は NULL です。 SQL Server 環境では、この値はテーブル所有者に対応します。

[ @table_catalog = ] N'table_catalog'

@table_nameが存在するデータベースの名前。 @table_catalogsysname で、既定値は NULL です。 NULL場合、@table_catalogは既定で master に設定されます。

[ @index_name = ] N'index_name'

情報が要求されるインデックスの名前。 @index_namesysname で、既定値は NULL です。

[ @is_unique = ] is_unique

情報を返すインデックスの種類。 @is_uniqueビットであり、次のいずれかの値を指定できます。

Value 説明
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';