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点,它转换了数据结构。如果进行备份,则无论兼容性级别如何,都无法在以前的版本上还原该备份。