检索给定表的索引和统计信息的说明。

语法

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 成员