I've been given a case where a customer is experiencing this error - once in a while:
Msg 8624, Level 16, State 21, Line 1
Internal Query Processor Error: The query processor could not produce a query plan. For more information, contact Customer Support Services.
They're using our software, and running it on SQL Server 2008 R2 (RTM) and at compatibilty level 100 (SQL Server 2008). The database however was originally created on a 2000 or 2005 machine (can't reproduce anymore) and then moved to 2008 R2 recently.
The stored procedure in question has an ugly looking
INSERT statement which grabs data from ten (yes!) "copies" of a given table, all joined with
RIGHT OUTER JOIN against one another (same table - ten JOINs against it).
The one solution I found that seems most appropriate has to do with various settings - it's recommended to use:
set ANSI_NULLS ON set ANSI_PADDING ON set ANSI_WARNINGS ON set CONCAT_NULL_YIELDS_NULL ON set QUOTED_IDENTIFIER ON set ARITHABORT ON set NUMERIC_ROUNDABORT OFF
OK - sure - I can set these before every stored procedure I create (or alter).
My question to the database gurus out there would be: any risk when I set these as default settings for my database?
ALTER DATABASE MyDB SET ANSI_NULLS ON
and be done with it? Thoughts? Insights? Recommendations?