Microsoft KB Archive/178298

= BUG: UPDATE on Cursor Without Unique Index Fails with Message 16934 =

Article ID: 178298

Article Last Modified on 10/3/2003

-

APPLIES TO


 * Microsoft SQL Server 6.5 Standard Edition

-



This article was previously published under Q178298



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.

Keywords: kbbug kbsqlserv650bug KB178298

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.