alexkedrov (4/15/2010) john.arnott (4/15/2010)
steve block (4/15/2010)
I think it would have been delicious to have one of the options for the answer to be "I Don't Know" and it be the correct response.
Excellent! And, may I suggest another (incorrect) choice to round out the list? "There is no answer".
Does Microsoft realize what the do? That it is going to be quite expensive to rewrite everything that is relying on ANSI_NULLS OFF? It is going to be a nightmare to rewrite complex T-SQL logic encapsulated in the scripts, functions, stored procs, etc.
Yes, I think Microsoft does realize that. That is exactly why changes like this are announced years in advance.
From Books Online for SQL Server 2005:
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature."
From Books Online for SQL Server 2008:
In a future version of SQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will generate an error. Avoid using this feature in new development work, and plan to modify applications that currently use this feature."
Based on my experience with previous removed features, I expext that the next version of SQL Server will introduce the new behaviour, but maintain the old behaviour if you set the compatibulity level to SQL2008 or below; that will then remain the case until the compatibility level for SQL Server 2008 is removed (which will be at least two or three major releases after the next one).
So we got our first warning in 2005, and the feature will probably not be completely gone before 2020 or so. That is 15 years - if that is not enough time, then I don't know what is.
Hugo Kornelis, SQL Server MVP
Visit my SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis