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