次の方法で共有


getIndexInfo メソッド (SQLServerDatabaseMetaData)

JDBC ドライバーのダウンロード

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

構文

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

パラメーター

cat

カタログ名を含む文字列です。

schema

スキーマ名を含む文字列です。

テーブル

テーブル名を含む文字列です。

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 値を返します。

Note

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

次の例では、getIndexInfo メソッドを使って、AdventureWorks2022 サンプル データベースの 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 クラス