【问题标题】:Unable to update COMPATIBILITY_LEVEL of database in ssms 2016无法在 ssms 2016 中更新数据库的 COMPATIBILITY_LEVEL
【发布时间】:2021-07-13 00:16:15
【问题描述】:

在 Azure 服务器上部署数据库时,出现以下错误:

数据库兼容级别“15”不在支持范围内 范围为 80 到 130。(Microsoft.SqlServer.Dac)

我尝试通过以下命令更新 COMPATIBILITY_LEVEL:

ALTER DATABASE  [database_name]
SET COMPATIBILITY_LEVEL = 100;  
GO

但是当我通过数据库的“属性”检查兼容模式时,我看到一个空白选项卡,我无法从下拉列表中选择任何值。

下面是我机器上安装的SQL server management studio的信息:

谁能建议我在使用此版本的 SSMS 时应遵循哪些步骤来更新任何数据库的兼容性级别?

正如其中一个 cmets 所述,以下是命令的输出

SELECT SERVERPROPERTY('ProductVersion') 

另外,下面是命令的输出

SELECT name, compatibility_level FROM sys.databases;

虽然数据库的兼容性级别在结果中显示为 100 及以上,但不确定我收到错误的原因。希望有任何建议。

【问题讨论】:

  • 最新版本的 SSMS 18 怎么样?
  • 数据库兼容性是一个服务器端控制,它与您正在使用的客户端应用程序(在本例中为 SSMS)无关。
  • SSMS 16 对超过 130 的兼容级别一无所知。请使用最新的 SSMS 18.x,它了解所有当前的兼容级别。
  • 感谢您的建议,@ConorCunninghamMSFT 我们可以在 16 版本本身中做些什么来使其正常工作吗?另外,之前的版本,比如 15/14,有没有类似的问题?
  • 我们将 SSMS 分开并按月发布,这样它就不会与主要版本相关联(并且不了解未来的版本)。使用最新的 SSMS 是推荐的前进路径。鉴于新的 SSMS 是免费下载的,我不会使用旧的 SSMS

标签: sql-server azure azure-sql-database ssms ssms-2016


【解决方案1】:

错误信息似乎不正确,因为:

  1. Azure SQL 中的版本号与 SQL Server 中的版本号不相关,并且
  2. 没有单一版本的 SQL Server 涵盖从 80 到 130 的级别(SQL Server 2000 到 2016)。

根据ALTER DATABASE (Transact-SQL) Compatibility Level

重要

SQL Server 和 Azure SQL 数据库的数据库引擎版本号不能相互比较,而是这些单独产品的内部版本号。 Azure SQL 数据库的数据库引擎基于与 SQL Server 数据库引擎相同的代码库。最重要的是,Azure SQL 数据库中的数据库引擎始终拥有最新的 SQL 数据库引擎位。 Azure SQL 数据库版本 12 比 SQL Server 版本 15 更新。

【讨论】:

  • 谢谢,在这种情况下您想提出什么解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多