BUG: UPDATE on Cursor Without Unique Index Fails with Message 16934 (178298)
The information in this article applies to:
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.
Modification Type: | Major | Last Reviewed: | 10/3/2003 |
---|
Keywords: | kbBug kbSQLServ650bug KB178298 kbAudDeveloper |
---|
|