次の方法で共有


getIndexInfo メソッド (SQLServerDatabaseMetaData)

渡されたテーブルのインデックスと統計情報についての記述を取得します。

構文

public java.sql.ResultSet getIndexInfo(java.lang.String cat,
                                       java.lang.String schema,
                                       java.lang.String table,
                                       boolean unique,
                                       boolean approximate)

パラメーター

cat

カタログ名を含む String です。

schema

スキーマ名を含む String です。

table

テーブル名を含む String です。

unique

一意の値のインデックスだけが返される場合は true です。すべてのインデックスが返される場合は false です。

approximate

結果に概数または期限切れの値が反映されている場合は true です。結果が正確である場合は false です。

戻り値

SQLServerResultSet オブジェクトです。

例外

SQLServerException

解説

getIndexInfo メソッドは、java.sql.DatabaseMetaData インターフェイスの getIndexInfo メソッドで規定されています。

getIndexInfo メソッドによって返される結果セットには、次の情報が含まれます。

名前 種類 説明

TABLE_CAT

String

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

TABLE_SCHEM

String

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

TABLE_NAME

String

テーブルの名前です。

NON_UNIQUE

boolean

インデックス値が重複可能であるかどうかを示します。

INDEX_QUALIFIER

String

インデックス所有者の名前です。TYPE が tableIndexStatistic の場合は null になります。

INDEX_NAME

String

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

TYPE

short

インデックスの種類です。次のいずれかの値を指定します。

tableIndexStatistic (0)

tableIndexClustered (1)

tableIndexHashed (2)

tableIndexOther (3)

ORDINAL_POSITION

short

インデックス内での列の位置を示す序数です。インデックスの先頭列は 1 です。

COLUMN_NAME

String

列の名前です。

ASC_OR_DESC

String

インデックスの照合で使用される順序です。次のいずれかの値を指定します。

A (昇順)

D (降順)

NULL (適用なし)

注意

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

CARDINALITY

int

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

PAGES

int

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

FILTER_CONDITION

String

フィルター条件です。

注意

SQL Server は常に "null" を返します。

注意

getIndexInfo メソッドによって返されるデータの詳細については、SQL Server オンライン ブックの「sp_indexes (Transact-SQL)」を参照してください。

次の例では、getIndexInfo メソッドを使用して、SQL Server 2005 AdventureWorks サンプル データベースにある Person.Contact テーブルのインデックスと統計情報に関する情報を返す方法を示します。

public static void executeGetIndexInfo(Connection con) {
   try {
      DatabaseMetaData dbmd = con.getMetaData();
      ResultSet rs = dbmd.getIndexInfo("AdventureWorks", "Person", "Contact", false, true);
      ResultSetMetaData rsmd = rs.getMetaData();

      // Display the result set data.
      int cols = rsmd.getColumnCount();
      while(rs.next()) {
         for (int i = 1; i <= cols; i++) {
            System.out.println(rs.getString(i));
         }
      }
      rs.close();
   } 

   catch (Exception e) {
      e.printStackTrace();
   }
}

参照

リファレンス

SQLServerDatabaseMetaData クラス

概念

SQLServerDatabaseMetaData のメソッド
SQLServerDatabaseMetaData のメンバー