我们当前正在将几个SQL Server实例从SQL Server 2008 R2升级到SQL Server 2012。
这是一个临时解决方案(因为Microsoft EOL对2008 R2的支持即将推出)。
我注意到升级后,所有系统数据库EXCEPT master都为新的scala> case class Emp(id: Int, name: String, salary: Double)
defined class Emp
scala> val emp1 = Emp(1, "james", 13000.00)
emp1: Emp = Emp(1,james,13000.0)
scala> val emp2 = Emp(2, "michael", 12000.00)
emp2: Emp = Emp(2,michael,12000.0)
scala> val emp3 = Emp(3, "Ram", 15000.00)
emp3: Emp = Emp(3,Ram,15000.0)
scala> val empList = List(emp1,emp2,emp3)
empList: List[Emp] = List(Emp(1,james,13000.0), Emp(2,michael,12000.0), Emp(3,Ram,15000.0))
// sort in descending order on the basis of salary.
scala> empList.sortWith(_.salary > _.salary)
(110)设置。
有人知道为什么compatibility_level
没有在升级过程中得到新的[master]
吗?
我知道我可以手动设置它,但是想知道为什么未将其默认设置为另一个系统数据库。
谢谢
答案 0 :(得分: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数据库的兼容性级别设置为当前兼容性级别。
- 主系统数据库r 建立了升级之前的兼容性级别。
所以,这是设计使然。