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。

# 返回值

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 2005AdventureWorks 示例数据库中 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 成员
发送有关本主题的反馈至 Microsoft。

© 2012 Microsoft。保留所有权利。