getCrossReference Method (SQLServerDatabaseMetaData)

Retrieves a description of the foreign key columns in the given foreign key table that references the primary key columns of the given primary key table.

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)

Parameters

cat1

A String that contains the catalog name of the table that contains the primary key.

schem1

A String that contains the schema name of the table that contains the primary key.

tab1

A String that contains the table name of the table that contains the primary key.

cat2

A String that contains the catalog name of the table that contains the foreign key.

schem2

A String that contains the schema name of the table that contains the foreign key.

tab2

A String that contains the table name of the table that contains the foreign key.

Return Value

A SQLServerResultSet object.

Exceptions

SQLServerException

Remarks

This getCrossReference method is specified by the getCrossReference method in the java.sql.DatabaseMetaData interface.

The result set returned by the getCrossReference method will contain the following information:

Name Type Description

PKTABLE_CAT

String

The name of the catalog that contains the primary key table.

PKTABLE_SCHEM

String

The name of the schema of the primary key table.

PKTABLE_NAME

String

The name of the primary key table.

PKCOLUMN_NAME

String

The column name of the primary key.

FKTABLE_CAT

String

The name of the catalog that contains the foreign key table.

FKTABLE_SCHEM

String

The name of the schema of the foreign key table.

FKTABLE_NAME

String

The name of the foreign key table.

FKCOLUMN_NAME

String

The column name of the foreign key.

KEY_SEQ

short

The sequence number of the column in a multicolumn primary key.

UPDATE_RULE

short

The action applied to the foreign key when the SQL operation is an update. It can be one of the following values:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)

DELETE_RULE

short

The action applied to the foreign key when the SQL operation is a deletion. It can be one of the following values:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)

FK_NAME

String

The name of the foreign key.

PK_NAME

String

The name of the primary key.

DEFERRABILITY

short

Indicates if the evaluation of the foreign key constraint can be deferred until a commit. It can be one of the following values:

importedKeyInitiallyDeferred (5)

importedKeyInitiallyImmediate (6)

importedKeyNotDeferrable (7)

Note

For more information about the data returned by the getCrossReference method, see "sp_fkeys (Transact-SQL)" in SQL Server Books Online.

Example

The following example demonstrates how to use the getCrossReference method to return information about the primary and foreign key relationship between the Person.Contact and HumanResources.Employee tables in the SQL Server 2005 AdventureWorks sample database.

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();
   }
}

See Also

Reference

SQLServerDatabaseMetaData Class

Concepts

SQLServerDatabaseMetaData Methods
SQLServerDatabaseMetaData Members