FIX: Sp_cursorfetch May Cause Errors 614 and 605ID: Q159781
|
If DYNAMIC CURSOR was opened through sp_cursoropen, and sp_cursor was used
to delete all rows from the table, subsequent calls to sp_cursorfetch with
any fetch type will fail, generating error 614. After the error occurs,
'drop table' fails, and you will receive Msg 3702 until the server is
restarted, even if the cursor has been closed. This problem may also cause
transient error 605 on the table if CURSOR is used repeatedly under this
condition. DBCC CHECKTABLE shows no corruption in the table. Regular
Transact SQL statements, such as SELECT, UPDATE, or DELETE still work fine
on the same table. The text of the error messages follows:
Error : 614, Severity: 21, State: 3
A row on page %ld was accessed that has an illegal length of 0 in
database '%s'.
Getpage: bstat=0x1008/0, sstat=0x82000091, disk
pageno is/should be: objid is/should be:
0x342(834) 0x8(8)
0x342(834) 0x7053b3f3(1884533747)
... extent objid 0x7053b3f3, mask 0x3/0, next/prev=0x340/0x340
... retry bufget after purging bp 0xf26d40
Error : 605, Severity: 21, State: 1
Attempt to fetch logical page %ld in database '%ld' belongs to object
'syslogs', not to object '%s'.
Msg 3702, Level 16, State 1
Cannot drop the table '%s' because it is currently in use.
To work around this problem, use the Keyset cursor instead.
Microsoft has confirmed this to be a problem in Microsoft SQL Server versions 4.2x, 6.0, and 6.5. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.
Additional query words: RPC RELATIVE
Keywords : kbprg SSrvGen kbbug6.50 kbbug4.2x kbbug6.00 kbfix6.50.sp2
Version : 4.2x 6.0 6.5
Platform : WINDOWS
Issue type :
Last Reviewed: April 4, 1999