SQL Server兼容模式

时间:2020-03-05 18:57:19  来源:igfitidea点击:

我们目前正在以兼容模式8运行服务器,并且我想对其进行更新。

  • 进入并更改它意味着什么?
  • 有什么可能会破坏?
  • 在执行数据之前,是否有任何检查数据可以保留的东西?
  • 是否可以在不执行还原且没有数据丢失的情况下回滚到模式8?

解决方案

回答

兼容模式会禁用较新版本的功能,就我个人而言,我并没有真正处理过很多有问题的数据库,在我们的环境中出现问题的关键是移至9后,我们将无法再使用Enterprise Manager查看数据库。

备份/还原是一个不错的选择,我也相信我们可以将其恢复原状。

回答

如果年龄是80到90,则差异很小。从65上升到70+可能会造成严重影响(NULL存储方式有所不同)。

暗示SP可以返回与我们预期不同的结果
可能会中断:功能,SP
数据应该生存;那里什么都不会影响事物。
从80移到90并返回只需几秒钟。是的,我们可以来回移动。

http://msdn.microsoft.com/en-us/library/bb510680.aspx

一些陷阱:http://mapamdug.blogspot.com/2006/03/sql-server-2005-gotcha-1.html

回答

  • 兼容模式不影响存储。这只是一个标志。数据或者查询没有任何变化。仅查询执行将受到影响。
  • 什么都没有-或者很多东西。我们是否使用了标记为过时且可能在2000年删除的语法?在查询中提供提示时,我们是否使用了复述?我们是否使用查询执行提示?如果是,最好先修改数据库,删除过时的语法,放回括号并挖掘BOL,以找出哪些提示会使新引擎上的微调查询变慢。
  • 不会。但是数据将继续存在。实际上,如果即使在模式8下也能够在server2005上运行数据库,则已经在使用新的数据格式。
  • 是的,我们可以回滚。它不是在进行转换,而只是设置一个标志,上面写着"我的查询是兼容的"。

回答

(我确实说过,只有当我们从6.5开始时,当NULL 70及更高版本使用整个字段时,该字段不会在char()字段中存储任何内容,这可能会导致大量的大小更改。)

当我们在2005年首次运行数据库时,VBStreets就正确地指出了他的观点,当然也指出了第3点,它转换了数据结构。如果进行备份,则无论兼容性级别如何,都无法在以前的版本上还原该备份。