ACC2002: Access May Choose an Unexpected Index as the Primary Key (292047)
The information in this article applies to:
This article was previously published under Q292047 This article applies only to a Microsoft Access database (.mdb).
Moderate: Requires basic macro, coding, and interoperability skills.
For a Microsoft Access 2000 version of this article, see 207745.
SYMPTOMS
When you link a table from an ODBC data source, such as Microsoft SQL Server or ORACLE, and that table contains more than one unique index, Microsoft Access may select the wrong index as the primary key.
CAUSE
When you link a table from an ODBC data source, the Microsoft Jet database
engine makes a call to SQLStatistics, an ODBC API function that is used to identify the first unique index to select as the primary key. SQLStatistics returns index information in the following order: Clustered, Hashed, Non-clustered, or other indexes. In addition, each index is listed alphabetically within each group.
NOTE: All indexes created within ORACLE are treated as non-clustered indexes. Therefore, the order of the index is determined by the name, rather than by the type.
RESOLUTION
To ensure that the Jet database engine properly selects the desired index
as the primary key when you link the table from your ODBC back end, rename the index so that it appears first, alphabetically.
NOTE: In SQL Server version 6.x, this behavior only occurs if you are using non-clustered unique indexes.
Modification Type: | Major | Last Reviewed: | 11/6/2003 |
---|
Keywords: | kb3rdparty kbprb KB292047 |
---|
|