getCrossReference Method (SQLServerDatabaseMetaData)

Download JDBC driver

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.

Syntax

  
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 AdventureWorks2022 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

SQLServerDatabaseMetaData Methods
SQLServerDatabaseMetaData Members
SQLServerDatabaseMetaData Class