2

我们目前正在将几个 SQL Server 实例从 SQL Server 2008 R2 升级到 SQL Server 2012。

这是一个临时解决方案(因为 Microsoft 对 2008 R2 的 EOL 支持即将推出)。

我注意到升级后所有系统数据库除了主数据库都设置为新的compatibility_level(110)。

有人知道为什么[master]不把新compatibility_level的作为升级的一部分吗?

我知道我可以手动设置它,但想知道为什么它没有设置为默认的其他系统数据库。

谢谢,

在此处输入图像描述

4

1 回答 1

1

从 SQL Server 2017 的文档中,但是在 SQL Server 2012 中也可以观察到相同的行为:ALTER DATABASE (Transact-SQL) Compatibility Level

在附加或还原数据库以及就地升级后,SQL Server 2017 (14.x) 会出现以下行为:

  • 如果升级前用户数据库的兼容级别为100或更高,升级后保持不变。
  • 如果升级前用户数据库的兼容级别为 90,则在升级后的数据库中,兼容级别设置为 100,这是 SQL Server 2017 (14.x) 中支持的最低兼容级别。
  • tempdb、model、msdb 和 Resource 数据库的兼容级别在升级后设置为当前的兼容级别。
  • 主系统数据库保留升级前的兼容性级别。

所以,这是设计行为。

于 2019-03-12T19:30:13.763 回答