BUG: UPDATE on Cursor Without Unique Index Fails w/ Msg 16934

Last reviewed: December 18, 1997
Article ID: Q178298
The information in this article applies to:
  • Microsoft SQL Server, version 6.5
BUG #: Windows NT: 17663 (6.5)

SYMPTOMS

Updates using a positioned cursor (such as UPDATE WHERE CURRENT OF) that is declared with a join clause where ALL tables in the join do NOT have unique indexes, may cause the following error:

   Msg 16934, Level 16, State 7
   Optimistic concurrency check failed, the row was modified outside of
   this cursor.

The first positioned cursor update will be successful. However, the next update (@@FETCH_STATUS is 0 after a FETCH of the next row) will fail with Msg 16934. The next FETCH after the failed update will force @@FETCH_STATUS to -1. This problem occurs even if some or one of the tables in the join have a unique index.

WORKAROUND

To work around this problem, ensure that all tables referenced in the DECLARE CURSOR statement have a unique index.

STATUS

Microsoft has confirmed this to be a problem in SQL Server version 6.5. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


Additional query words:
Keywords : kbbug6.50 SSrvTran_SQL
Version : WINNT:6.5
Platform : winnt
Issue type : kbbug
Solution Type : kbworkaround


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: December 18, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.