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

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

integer

The precision of the column.

BUFFER_LENGTH

integer

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 SQL Server 2005 AdventureWorks 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