共用方式為


getCrossReference 方法 (SQLServerDatabaseMetaData)

下載 JDBC 驅動程式

擷取給定外部索引鍵資料表中之外部索引鍵資料行的描述,該資料表會參考給定主索引鍵資料表的主索引鍵資料行。

語法

  
public java.sql.ResultSet getCrossReference(java.lang.String cat1,  
                                            java.lang.String schem1,  
                                            java.lang.String tab1,  
                                            java.lang.String cat2,  
                                            java.lang.String schem2,  
                                            java.lang.String tab2)  

參數

cat1

String,其中包含資料表的目錄名稱,而此資料表含有主索引鍵。

schem1

String,其中包含資料表的結構描述名稱,而此資料表含有主索引鍵。

tab1

String,其中包含資料表的資料表名稱,而此資料表含有主索引鍵。

cat2

String,其中包含資料表的目錄名稱,而此資料表含有外部索引鍵。

schem2

String,其中包含資料表的結構描述名稱,而此資料表含有外部索引鍵。

tab2

String,其中包含資料表的資料表名稱,而此資料表含有外部索引鍵。

傳回值

SQLServerResultSet 物件。

例外狀況

SQLServerException

備註

這個 getCrossReference 方法是由 java.sql.DatabaseMetaData 介面中的 getCrossReference 方法指定。

透過 getCrossReference 方法所傳回的結果將包含下列資訊:

名稱 類型​​ Description
PKTABLE_CAT String 包含主索引鍵資料表的目錄名稱。
PKTABLE_SCHEM String 主索引鍵資料表的結構描述名稱。
PKTABLE_NAME String 主索引鍵資料表的名稱。
PKCOLUMN_NAME String 主索引鍵的資料行名稱。
FKTABLE_CAT String 包含外部索引鍵資料表的目錄名稱。
FKTABLE_SCHEM String 外部索引鍵資料表的結構描述名稱。
FKTABLE_NAME String 外部索引鍵資料表的名稱。
FKCOLUMN_NAME String 外部索引鍵的資料行名稱。
KEY_SEQ short 資料行在多重資料行主索引鍵中的序號。
UPDATE_RULE short 當 SQL 作業為更新時套用到外部索引鍵的動作。 它可能是下列其中一個值:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)
DELETE_RULE short 當 SQL 作業為刪除時套用到外部索引鍵的動作。 它可能是下列其中一個值:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)
FK_NAME String 外部索引鍵的名稱。
PK_NAME String 主索引鍵的名稱。
DEFERRABILITY short 指出外部索引鍵條件約束的評估是否可以延遲到認可之前。 它可能是下列其中一個值:

importedKeyInitiallyDeferred (5)

importedKeyInitiallyImmediate (6)

importedKeyNotDeferrable (7)

注意

如需 getCrossReference 方法所傳回資料的詳細資訊,請參閱《SQL Server 線上叢書》中的 "sp_fkeys (Transact-SQL)"。

範例

下列範例示範如何使用 getCrossReference 方法來傳回 AdventureWorks2022 範例資料庫中 Person.Contact 與 HumanResources.Employee 數據表之間主要和外鍵關聯性的相關信息。

public static void executeGetCrossReference(Connection con) {  
   try {  
      DatabaseMetaData dbmd = con.getMetaData();  
      ResultSet rs = dbmd.getCrossReference("AdventureWorks", "Person", "Contact", null, "HumanResources", "Employee");  
      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 類別