getBestRowIdentifier Method (SQLServerDatabaseMetaData)

Download JDBC driver

Retrieves a description of the optimal set of columns of a table that uniquely identifies a row.

Syntax

  
public java.sql.ResultSet getBestRowIdentifier(java.lang.String catalog,  
                                               java.lang.String schema,  
                                               java.lang.String table,  
                                               int scope,  
                                               boolean nullable)  

Parameters

catalog

A String that contains the catalog name.

schema

A String that contains the schema name.

table

A String that contains the table name.

scope

An int that indicates the scope of interest. Values can include the following:

bestRowTemporary (0)

bestRowTransaction (1)

bestRowSession (2)

nullable

true to include nullable columns. Otherwise, false.

Return Value

A SQLServerResultSet object.

Exceptions

SQLServerException

Remarks

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

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

Name Type Description
SCOPE short The scope of the returned results. It can be one of the following values:

bestRowTemporary (0)

bestRowTransaction (1)

bestRowSession (2)
COLUMN_NAME String The name of the column.
DATA_TYPE short The SQL data type from java.sql.Types.
TYPE_NAME String The name of the data type.
COLUMN_SIZE int The precision of the column.
BUFFER_LENGTH int The buffer length.
DECIMAL_DIGITS short The scale of the column.
PSEUDO_COLUMN short Indicates if the column is a pseudo column. It can be one of the following values:

bestRowUnknown (0)

bestRowNotPseudo (1)

bestRowPseudo (2)

Example

The following example demonstrates how to use the getBestRowIdentifier method to return information about the best row identifier for the Person.Contact table in the AdventureWorks2022 sample database.

public static void executeGetBestRowIdentifier(Connection con) {  
   try {  
      DatabaseMetaData dbmd = con.getMetaData();  
      ResultSet rs = dbmd.getBestRowIdentifier(null, "Person", "Contact", 0, true);  
      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