SQL Server兼容模式

时间:2008-09-16 22:00:47

标签: sql-server upgrade compatibility

我们目前正在兼容模式8上运行服务器,我想更新它。

  • 进入和改变它有什么含义?
  • 什么可能会破裂?
  • 在执行之前是否有任何检查数据的存在?
  • 我可以回滚到模式8而不执行恢复并且不会丢失数据吗?

4 个答案:

答案 0 :(得分:5)

如果您从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

答案 1 :(得分:3)

  1. 兼容模式不会影响存储。这只是一面旗帜。数据或查询中没有任何内容会发生变化。只有查询执行才会受到影响。
  2. 没什么 - 或者很多东西。您是否使用标记为过时的语法并在2000年删除?在提供查询提示时,您是否使用了parethesis?你使用查询执行提示了吗?如果是的话,最好先修改你的数据库,删除过时的语法,把括号放回去挖掘BOL,找出哪些提示会减慢你对新引擎的微调查询的速度。
  3. 否。但数据将存活下来。事实上,如果你能够在server2005上运行数据库,即使在模式8下,你也已经在使用新的数据格式了。
  4. 是的,你可以回滚。它没有改变,它只是设置一个标记,上面写着“我的查询是兼容的。”

答案 2 :(得分:0)

兼容模式禁用了较新版本的功能,我个人并没有真正使用过很多有问题的数据库,在我们的环境中出现问题的关键是移动到9后,你不能再使用Enterprise Manager了查看数据库。

备份/恢复是一个不错的选择,我也相信你可以毫无问题地将其翻转。

答案 3 :(得分:0)

(我之前确实说过,只有当你从6.5移动时才会移动char()字段中的任何内容,当NULL - 70及更大时使用整个字段时,这会导致大规模的大小更改。)

VBStreets是正确的 - 并且肯定在第3点 - 当您在2005年首次运行数据库时,它转换了数据结构。如果您进行备份,则无论兼容级别如何,都无法在以前的版本中恢复。