sp_configure错误:不支持对系统目录进行即席更新。

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

     今天在一台数据库服务器上(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.  
  3. GO
  4.  
  5. RECONFIGURE;
  6.  
  7. GO
  8.  
  9. Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
  10.  
  11. 消息 5808,级别 16,状态 1,第 1 行 
  12. 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.  
  3. GO
  4.  
  5. RECONFIGURE WITH OVERRIDE;
  6.  
  7. GO
  8.  
  9. 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.  
  3.      name         minimum     maximum   config_value run_value
  4.  
  5. ------------- ----------- ----------- ------------ -----------
  6.  
  7.  allow updates      0           1           1            1
  8.  
  9. EXEC sp_configure 'allow_updates',0;
  10.  
  11. GO
  12.  
  13. RECONFIGURE WITH OVERRIDE;
  14.  
  15. GO
  16.  
  17. EXEC sp_configure 'show advanced options', 1;
  18.  
  19. GO
  20.  
  21. RECONFIGURE;
  22.  
  23. GO
  24.  
  25. Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
  26.  
  27. EXEC sp_configure'show advanced options', 1;
  28.  
  29. GO
  30.  
  31. RECONFIGURE;
  32.  
  33. GO
  34. 配置选项 'show advanced options' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
关系型数据库 MySQL 数据库
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
352 0
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库——视图-检查选项(cascaded、local)
MySQL数据库——视图-检查选项(cascaded、local)
53 0
|
4月前
|
SQL
如何查看SQLSERVER的版本信息和SP补丁信息
如何查看SQLSERVER的版本信息和SP补丁信息
126 1
|
SQL 关系型数据库 MySQL
MySQL中sp运行check表版本更新流程解析
MySQL中sp运行check表版本更新流程解析
223 0
|
SQL 前端开发 Windows
SQL Sever2012安装错误——Windows Installer错误消息:打开安装日志文件的错误的原因及解决方案
由于要对着错误信息来解决,所以此处是用手机拍摄的,如果看不清楚可以看下面的文字版;此处的错误是在安装程序支持规则中爆出的
534 0
SQL Sever2012安装错误——Windows Installer错误消息:打开安装日志文件的错误的原因及解决方案
|
SQL Web App开发 安全
【转360】KB4041678 Windows 仅安全更新(2017.10) 补丁更新后执行SQL出错! http://bbs.360.cn/thread-15201531-1-1.html
把EXCEL20003表数据导入到MDB数据库中sql命令语句\"SELECT * INTO 表 FROM [Excel 8.0;DATABASE=C:\\1.xls].[Sheet1$]\"执行后报错,如下图:卸载KB4041678 补丁,电脑重启之后,执行正常。
1457 0