Teilen über


getCrossReference-Methode (SQLServerDatabaseMetaData)

JDBC-Treiber herunterladen

Ruft eine Beschreibung der Fremdschlüsselspalten in der angegebenen Fremdschlüsseltabelle ab, von der auf die Primärschlüsselspalten der angegebenen Primärschlüsseltabelle verwiesen wird.

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)  

Parameter

cat1

Ein String-Objekt, das den Katalognamen der Tabelle enthält, die den Primärschlüssel enthält.

schem1

Ein String-Objekt, das den Schemanamen der Tabelle enthält, die den Primärschlüssel enthält.

tab1

Ein String-Objekt, das den Tabellennamen der Tabelle enthält, die den Primärschlüssel enthält.

cat2

Ein String-Objekt, das den Katalognamen der Tabelle enthält, die den Fremdschlüssel enthält.

schem2

Ein String-Objekt, das den Schemanamen der Tabelle enthält, die den Fremdschlüssel enthält.

tab2

Ein String-Objekt, das den Tabellennamen der Tabelle enthält, die den Fremdschlüssel enthält.

Rückgabewert

Ein SQLServerResultSet-Objekt.

Ausnahmen

SQLServerException

Bemerkungen

Diese getCrossReference-Methode wird von der getCrossReference-Methode in der java.sql.DatabaseMetaData-Schnittstelle angegeben.

Das von der getCrossReference-Methode zurückgegebene Resultset enthält die folgenden Informationen:

Name type BESCHREIBUNG
PKTABLE_CAT String Der Name des Katalogs, der die Primärschlüsseltabelle enthält.
PKTABLE_SCHEM String Der Name des Schemas der Primärschlüsseltabelle.
PKTABLE_NAME String Der Name der Primärschlüsseltabelle.
PKCOLUMN_NAME String Der Spaltenname des Primärschlüssels.
FKTABLE_CAT String Der Name des Katalogs, der die Fremdschlüsseltabelle enthält.
FKTABLE_SCHEM String Der Name des Schemas der Fremdschlüsseltabelle.
FKTABLE_NAME String Der Name der Fremdschlüsseltabelle.
FKCOLUMN_NAME String Der Spaltenname des Fremdschlüssels.
KEY_SEQ short Die Sequenznummer der Spalte bei einem Primärschlüssel, der durch mehrere Spalten definiert wird.
UPDATE_RULE short Die auf den Fremdschlüssel angewendete Aktion, wenn es sich beim SQL-Vorgang um ein Update handelt. Es kann sich um einen der folgenden Werte handeln:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)
DELETE_RULE short Die auf den Fremdschlüssel angewendete Aktion, wenn es sich beim SQL-Vorgang um eine Löschung handelt. Es kann sich um einen der folgenden Werte handeln:

importedKeyNoAction (3)

importedKeyCascade (0)

importedKeySetNull (2)

importedKeySetDefault (4)

importedKeyRestrict (1)
FK_NAME String Der Name des Fremdschlüssels.
PK_NAME String Der Name des Primärschlüssels.
DEFERRABILITY short Zeigt an, ob die Auswertung der Fremdschlüsseleinschränkung bis zur Ausführung einer Commit-Aktion verzögert werden kann. Es kann sich um einen der folgenden Werte handeln:

importedKeyInitiallyDeferred (5)

importedKeyInitiallyImmediate (6)

importedKeyNotDeferrable (7)

Hinweis

Weitere Informationen zu den Daten, die von der getCrossReference-Methode zurückgegeben werden, finden Sie in der SQL Server-Onlinedokumentation unter „sp_fkeys (Transact-SQL)“.

Beispiel

Im folgenden Beispiel wird dargestellt, wie die getCrossReference-Methode zur Rückgabe von Informationen über die Primär- und Fremdschlüsselbeziehung zwischen der Person.Contact- und der HumanResources.Employee-Tabelle in der AdventureWorks2022-Beispieldatenbank verwendet wird.

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

Weitere Informationen

SQLServerDatabaseMetaData-Methoden
SQLServerDatabaseMetaData-Elemente
SQLServerDatabaseMetaData-Klasse