BUG: 8623 Error with INSERT-SELECT when Nullable Clustered Keys not Referenced

ID: Q235401


The information in this article applies to:
  • Microsoft SQL Server version 7.0

BUG #: 55906 (SQLBUG_70)

SYMPTOMS

Running an INSERT SELECT statement into a table that has a clustered index, in which all fields allow NULLs, may fail with the following error message:

Server: Msg 8623, Level 16, State 2, Line 5 Internal Query Processor Error: The query processor could not produce a query plan.
This error only occurs if all of the following conditions are met:
  • The table has a clustered index in which all fields allow NULLs.


  • The clustered index fields are not referenced in the SELECT statement, so NULL values are to be inserted for all fields in the index.


  • A sufficient amount of rows are being inserted such that SQL Server determines it would be faster to sort the data before inserting into the clustered index.


  • Only one processor is available at the time the query plan is being generated. This could be for any of the following reasons:

    • The computer has a single processor.


    • The computer has multiple processors, but the Maximum Degree of Parallelism (MAX DOP) has been set to 1, either in sp_configure or with a query hint.


    • The computer has multiple processors, but is under such a sufficient load that they are all being utilized at the time the query plan is being generated.



CAUSE

When generating the plan for the sort with a single thread, the optimizer code does not expect NULL values for all of the fields to be sorted.


WORKAROUND

To workaround this issue, choose any of the following options:

  • Change the clustered index to include at least one field that does not allow NULL values.


  • Change the clustered index to a non-clustered index.


  • Reference at least one of the clustered index keys in the INSERT SELECT statement so there are values inserted into the field.



STATUS

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

Additional query words:

Keywords : kbSQLServ700bug
Version : winnt:7.0
Platform : winnt
Issue type : kbbug


Last Reviewed: December 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.