检索给定外键表中的外键列的说明,该外键表引用给定主键表的主键列。

语法

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 方法返回的结果集将包含下列信息:

名称 类型 说明

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 方法返回有关 SQL Server 2005 AdventureWorks 示例数据库中 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 成员