Error Message: Ad hoc update to system catalogs is not supported.
I ran into an interresting situation today while working with a customer and thought it worthwhile to blog on the subject since my internet searching proved lengthy on the subject. While trying to run a RECONFIGURE statement after making an sp_configure change I received the following message:
Msg 5808, Level 16, State 1, Line 2
Ad hoc update to system catalogs is not supported.
I’m running on SQL Server 2005 SP2+ so my first thought was… obviously, but I’m not trying to update system catalogs, I’m trying to make an sp_configure change. After doing some digging I found that the culript was the sp_configure ‘allow updates’ parameter. This configuration in SQL Server 2000 allowed or dissalowed direct system table updates. In SQL Server 2005, this configuration item still exists but it is obsolete since direct access to system tables in always prohibited. While the configuration item is obsolete, having it set to 1 in SQL Server 2005 requires you to run the RECONFIGURE statement using WITH OVERRIDE, otherwise you will get the message above.
If you ever see the message above when trying to run RECONFIGURE you will either need to run RECONFIGURE WITH OVERRIDE, or first run:
EXEC sp_configure ‘allow updates’, 0
RECONFIGURE
I find it confusing that an “obsolete” configuration parameter can have an effect on instance behavior, but oh well. I’d love to hear comments if anyone has any insight into this or similar issues.
Thanks to Jasper Smith, who posted here and pointed me in the right direction.
Tags: Programming, sp_configure, SQL Server 2000, SQL Server 2005
August 7th, 2009 at 2:54 pm
Thanks Jasper!!
I got the same situation now and used RECONFIGURE WITH OVERRIDE and it worked. Thanks for sharing!!
February 26th, 2010 at 6:44 am
I also use the override option when I get the warning