getIndexInfo 方法 (SQLServerDatabaseMetaData)
检索给定表的索引和统计信息的说明。
语法
public java.sql.ResultSet getIndexInfo(java.lang.String cat,
java.lang.String schema,
java.lang.String table,
boolean unique,
boolean approximate)
参数
cat
一个包含目录名称的字符串 。
架构
一个包含架构名称的字符串。
table
一个包含表名称的字符串。
unique
如果仅返回唯一值的索引,则值为 true。 如果返回所有索引,则值为 false。
approximate
如果结果反映近似值或过期值,则值为 true。 如果结果是准确值,则值为 false。
返回值
一个 SQLServerResultSet 对象。
例外
备注
此 getIndexInfo 方法是由 java.sql.DatabaseMetaData 接口中的 getIndexInfo 方法指定的。
由 getIndexInfo 方法返回的结果集将包含以下信息:
名称 | Type | 说明 |
---|---|---|
TABLE_CAT | 字符串 | 指定的表所在的数据库的名称。 |
TABLE_SCHEM | 字符串 | 表的架构。 |
TABLE_NAME | 字符串 | 表的名称。 |
NON_UNIQUE | boolean | 指示索引值是否可以不唯一。 |
INDEX_QUALIFIER | 字符串 | 索引所有者的名称。 当 TYPE 为 tableIndexStatistic 时,该名称为 Null。 |
INDEX_NAME | 字符串 | 索引的名称。 |
TYPE | short | 索引的类型。 可以为下列值之一: tableIndexStatistic (0) tableIndexClustered (1) tableIndexHashed (2) tableIndexOther (3) |
ORDINAL_POSITION | short | 列在索引中的序号位置。 索引中的第一列为 1。 |
COLUMN_NAME | 字符串 | 列的名称。 |
ASC_OR_DESC | 字符串 | 索引排序规则中所用的顺序。 可以为下列值之一: A(升序) D(降序) NULL(不适用) 注意:SQL Server 始终返回“A”。 |
CARDINALITY | int | 表中的行数或索引中的唯一值个数。 |
PAGES | int | 用于存储索引或表的页数。 |
FILTER_CONDITION | 字符串 | 筛选条件。 注意:SQL Server 始终返回 NULL。 |
备注
有关 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 类