getCrossReference 方法 (SQLServerDatabaseMetaData)
擷取給定外部索引鍵資料表中之外部索引鍵資料行的描述,該資料表會參考給定主索引鍵資料表的主索引鍵資料行。
語法
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,其中包含資料表的資料表名稱,而此資料表含有外部索引鍵。
傳回值
例外狀況
備註
這個 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 類別