今天在一台数据库服务器上(Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)     Standard Edition (64-bit))使用sp_configure更改当前服务器的全局配置设置时,遇到错误提示为“消息 5808,级别 16,状态 1,第 1 行 Ad hoc update to system catalogs is not supported”,一般对应的中文错误提示为:“消息 5808,级别 16,状态 1,第 1 行  不支持对系统目录进行即席更新”。

Code Snippet
  1. EXEC sp_configure'show advanced options', 1;
  2. GO
  3. RECONFIGURE;
  4. GO
  5. Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
  6. 消息 5808,级别 16,状态 1,第 1 行
  7. Ad hoc update to system catalogs is not supported.

但是如果我将RECONFIGURE 改为RECONFIGURE WITH OVERRIDE 则OK,不会有上面错误。

Code Snippet
  1. EXEC sp_configure'show advanced options', 1;
  2. GO
  3. RECONFIGURE WITH OVERRIDE;
  4. GO
  5. Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.

MSDN关于 RECONFIGURE 和 RECONFIGURE WITH OVERRIDE的解释

RECONFIGURE

指定如果配置设置不需要服务器停止并重新启动,则更新当前运行的值。RECONFIGURE 还会检查新的配置值中是否有无效值(例如,在 syscharsets 中不存在的排序顺序值)或非建议值。对于那些不需要服务器停止并重新启动的配置选项,其当前运行的值和当前配置的值在指定 RECONFIGURE 之后应当相同。

WITH OVERRIDE

禁用对 recoveryinterval 高级配置选项的配置值检查(以查找无效值或非建议值)。

任何配置选项都可以通过使用 WITH OVERRIDE 选项来重新配置。另外,RECONFIGURE WITH OVERRIDE 使用指定值强制重新配置。例如,可使用大于 maxservermemory 配置选项中指定的值来配置minservermemory 配置选项。但是,这将被认为是错误。因此,指定 RECONFIGURE WITH OVERRIDE 将不禁用配置值检查。

一般造成上面错误的原因是因为allow_updates被设置为1,关于allow updates选项的MSDN解释

allow updates Option
This option is still present in the sp_configure stored procedure, although its functionality is unavailable in SQL Server. The setting has no effect. Starting with SQL Server 2005, direct updates to the system tables are not supported.
Important:
This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.
Changing the allow updates option will cause the RECONFIGURE statement to fail. Changes to the allow updates option should be removed from all scripts.

此选项仍然存在于 sp_configure 存储过程中,但是其功能在 SQL Server 中不可用。其设置不起作用。从 SQL Server 2005 开始,不支持直接更新系统表

更改 allow updates 选项将导致 RECONFIGURE 语句失败。 应当从所有脚本中删除对 allow updates 选项的更改。

我检查了一下数据库关于'allow_updates' 选项的config_value和 run_value,果然发现其值为1,使用sp_configure将其置为0后,使用RECONFIGURE时,不会出现上面错误

Code Snippet
  1. EXEC sp_configure 'allow_updates'
  2. name         minimum     maximum   config_value run_value
  3. ------------- ----------- ----------- ------------ -----------
  4. allow updates      0           1           1            1
  5. EXEC sp_configure 'allow_updates',0;
  6. GO
  7. RECONFIGURE WITH OVERRIDE;
  8. GO
  9. EXEC sp_configure 'show advanced options', 1;
  10. GO
  11. RECONFIGURE;
  12. GO
  13. Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
  14. EXEC sp_configure'show advanced options', 1;
  15. GO
  16. RECONFIGURE;
  17. GO
  18. 配置选项 'show advanced options' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装

sp_configure错误:不支持对系统目录进行即席更新。的更多相关文章

  1. HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)

    HTTP请求415错误 – 不支持的媒体类型(Unsupported media type) 通常有以下情况: 1:检查你的 http 请求头信息,比如 因为 User-Agent 被服务器设置 拒绝 ...

  2. Android Project from Existing Code 生成 R 文件错误、失败等问题解决办法 - 持续更新

    Android Project from Existing Code 生成 R 文件错误.失败等问题解决办法 - 持续更新 git  上的项目,pull下来之后用Android Project fro ...

  3. SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败

    原文:SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败 今天发现队列读取器代理不停地尝试启动但总是出错: 其中内容如下: 队列读取器代理在连接"Publicati ...

  4. Error:java: 错误: 不支持发行版本 5

    本文链接:https://blog.csdn.net/wo541075754/article/details/70154604 在Intellij idea中新建了一个Maven项目,运行时报错如下: ...

  5. 错误:支持“EFDbContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId

    支持"EFDbContext"上下文的模型已在数据库创建后发生更改.请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/ ...

  6. Intellij Idea 建立maven项目 报错 :java: 错误: 不支持发行版本 5

    百度一搜这个错误,好多人都遇到了 不计其数的人都遇到.网上大多数都是菜鸟的愚见.经过本人的测试发现,用Idea建立普通的Java项目 然后随便建立一个类运行就不会报错. 但是如果用Idea建立一个普通 ...

  7. IDEA运行报错 Error:java: 错误: 不支持发行版本 xx

    解决方案 修改项目配置,进入Project Setting,截图可参考下面的截图 1.修改全局设置 修改Project->Project Language Level->选择版本比当前jd ...

  8. 安装mysql数据库中的技巧、错误排查以及实用命令(持续更新)

    针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.初始化data目录(解压版解压后没有data目录) mysqld --initialize-insecure --use ...

  9. HTML5中已经不支持元素汇总,持续更新

    HTML5中已经不支持以下的元素,不建议在进行开发时再使用以下的元素. 1.acronym(建议abbr) : 定义首字母缩写 2.applet(建议object):  定义 applet 3.bas ...

随机推荐

  1. Java内存模型深度解析:volatile--转

    原文地址:http://www.codeceo.com/article/java-memory-4.html Volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特 ...

  2. js 获取当前的时间

    第一个小程序,用js获取当前的时间,,比较特殊的是 月是从0开始算的,显示的时候要加1,获取日用getDate(),获取周 getDay(), 直接上代码 <!DOCTYPE html> ...

  3. JavaScript中Promises/A+规范的实现

    Promises是一种异步编程模型,通过一组API来规范化异步操作,这样也能够让异步操作的流程控制更加容易. 下面的代码是假设执行一个异步队列,每一项都会使用上一项返回的数据: function ne ...

  4. HTTP在.NET中的一些应用和解析

    谈到HTTP协议(超文本传输协议),HTTP协议是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在 ...

  5. Ubuntu下搭建ryu环境

    RYU环境搭建总共四步: step1:首先下载相应的python套件,并且更新pip $ sudo apt-get install python-pip python-dev build-essent ...

  6. 30天React Native从零到IOS/Android双平台发布总结

    前言 本人有近十年的技术背景,除了APP开发之外对后端.前端等都比较熟悉,近期做一个APP项目需要IOS.Android两个平台都需要,只能硬着头皮上.其实很早就想开发APP也很早就接触Android ...

  7. C#中 @ 的3种用途

    1.忽略转义字符例如string fileName = "D:\\文本文件\\text.txt";使用@后string fileName = @"D:\文本文件\text ...

  8. GitHub-版本控制

    GitHub的使用:注册,登录,邮箱激活,创建第一个repository.如果branch是master,修改,提交,master直接改变. 稳妥起见创建另一个branch,修改,提交,再发出pull ...

  9. Oracle 数据库基础学习 (七) SQL语句综合练习

    一.多表查询综合练习 1.  列出高于在30部门工作的所有人员的薪金的员工的姓名.部门名称.部门编号.部门人数 分析: 需要的员工信息: |-emp表:姓名.部门编号 |-dept表:部门名称.部门编 ...

  10. 【JAVA并发编程实战】7、日志服务

    这里是一个应用项目使用生产消费模型的日志类 package cn.study.concurrency; import java.util.concurrent.BlockingQueue; impor ...