While dealing with filtered index following Six SET option’s value should be set to ON
SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET ARITHABORT ON SET CONCAT_NULL_YIELDS_NULL ON SET QUOTED_IDENTIFIER ON
And the one SET option whose setting value should be off is:
SET NUMERIC_ROUNDABORT OFF
If these settings are not set properly then filtered index creation may fail, query execution may not use the index or DML operation on the table may fail. The DML operation may fail with a error message like below:
Click on the error message link to see a detailed example demonstrating when we get this error and how to resolve it.
To know more on the difference between SET ANSI_NULLS ON and SET ANSI_NULLS OFF Setting please visit the article: SET ANSI_NULLS ON/OFF Setting in Sql Server
To know more on the difference between SET QUOTED_IDENTIFIER ON and SET QUOTED_IDENTIFIER OFF Setting please visit the article: Difference Between SET QUOTED_IDENTIFIER ON and OFF setting in SQL Server
Please correct me, if my understanding is wrong. Comments are always welcome.
Thank you for posting this information. Today i deployed a filtered index and immediately insert stored procedures began failing. Wished i had read your article earlier 🙂