Share via


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

包含目錄名稱的 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 方法傳回 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 類別