This article has been replaced by the following Microsoft Knowledge Base article:
836096 FIX: You may receive a 625 error message when you run a query that has a query plan that uses a nested loop join strategy
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 364074 (SQL Server 8.0)
A DELETE statement that includes a JOIN might fail, and you receive the following error message:
Error: 625, Severity: 20, State: 3 Cannot retrieve row from page (4:2268) by RID because the slotid (681803120) is not valid..
However, a DBCC CHECKDB reports no errors, and the Event Log shows no related hardware errors.
This problem can occur when all the following conditions are met:
A nested loops operator is included in the query plan.
The inner table of the nested loops operator is a target table of the DELETE statement.
The nested loops operator performs a many-to-many join or a one-to-many join.
The input to the nested loops operator contains duplicate values.
The Table Spool operator is placed above the nested loops operator.
The Bookmark Lookup operator is placed above the Table Spool operator.
The Table Spool operation mentioned earlier in this article can be the other Halloween protection operator.
The repro in the bug is only for DELETE statement, we do not have the repro for the UPDATE statement. However, the UPDATE statement probably causes the same error.
To work around this error, you can specify one of the following:
OPTION (HASH JOIN)
OPTION (MERGE JOIN)
Service pack information
To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
Date Time Version Size File name Description --------------------------------------------------------------------------------- 20-Feb-2003 20:58 2000.80.735.0 7,462,993 bytes Sqlservr.exe SP2-based fix 15-Feb-2003 02:52 2000.80.769.0 7,512,145 bytes Sqlservr.exe SP3-based fix
Note: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000, Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit