BUG: Transient 605 Error When Doing a BCP Operation on Heap (218603)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q218603
BUG #: 54221 (SQLBUG_70)

SYMPTOMS

A table without a clustered index is called a "heap". When performing a nonlogged, Bulk Copy Program (BCP), or Bulk Insert operation into the heap table, it is possible to encounter transient 605 errors as follows:
Attempt to fetch logical page %S_PGID in database '%.*ls' belongs to object '%.*ls', not to object '%.*ls'.
The following text can be found in the SQL Server error log:
1999-02-11 17:13:30.56 spid7 Getpage: bstat=0x9, sstat=0, cache
1999-02-11 17:13:30.56 spid7 pageno is/should be: objid is/should be:
1999-02-11 17:13:30.56 spid7 (1:255)/(1:255) 133575514/117575457
1999-02-11 17:13:30.56 spid7 ... IAM indicates that page is NOT allocated to this object
1999-02-11 17:14:06.90 spid7 Error: 605, Severity: 21, State: 1
1999-02-11 17:14:06.90 spid7 Attempt to fetch logical page (1:255) in database 'db605' belongs to object 'tblHold', not to object 'tbl605'..
  • The BCP operation will be aborted and rolled back.
  • Checktable and checkdb operations show a clean database after the error is encountered.
  • The error is only encountered when doing nonlogged operations on a heap. For complete details on logged versus nonlogged operations, see the SQL Server Books Online topic, "Logged and Nonlogged Bulk Copies".

WORKAROUND

Add a clustered index to the table or perform logged BCP operations.

STATUS

Microsoft has confirmed this to be a problem in SQL Server 7.0.

Modification Type:MajorLast Reviewed:10/16/2002
Keywords:kbBug KB218603