This article has been archived. It is offered "as is" and will no longer be updated.
When you run a complex OUTER or SEMI JOIN query that involves hash joins on large data sets, or data sets that involve skewed distributions, you may receive incorrect results if the following conditions are true:
SQL Server (in rare circumstances) decides to reverse the roles of the hash build and probe inputs.
Subsequently, because the original build input is too large to fit in memory, it is spilled to disk.
Finally, the role reversal is undone.
To validate the applicability of this fix to your scenario, check the following:
Use SQL Profiler and capture the EventClass Execution Plan. Check to see if the query that is resulting in incorrect results is using the HASH operator.
Use SQL Profiler and capture the EventClass Hash Warning and confirm that this event is raised. If so, make sure that the data column EventSubClass contains "Hash Recursion" (indicates spilling). For more information, see the "Errors and Warnings Event Classes" topic in SQL Server Books Online.
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.