6

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

  • 只是进入并改变它的含义是什么?
  • 什么情况可能会破裂?
  • 在我执行之前,是否有任何东西可以检查数据是否会存活?
  • 我可以在不执行还原且不丢失数据的情况下回滚到模式 8 吗?
4

4 回答 4

5

如果您要从 80 到 90,则差异很小。从 65 到 70+ 可能会造成严重影响(NULL 的存储方式不同)。

影响 - 您的 SP 可能返回与您预期不同的结果 那里的任何东西都不应该影响事物。
从 80 到 90 并返回只需几秒钟。是的,你可以来回移动。

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

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

于 2008-09-16T22:08:35.600 回答
3
  1. 兼容模式不影响存储。这只是一面旗帜。数据或查询不会发生任何变化。只有查询执行会受到影响。
  2. 什么都没有——或者很多东西。您是否使用了 2000 年标记为过时且可能被删除的语法?在查询中提供提示时是否使用了括号?您是否使用了查询执行提示?如果是,最好先修改数据库,删除过时的语法,放回括号并挖掘 BOL 以找出哪些提示会减慢您在新引擎上的微调查询。
  3. 不会。但数据会继续存在。事实上,如果您能够在 server2005 上运行您的数据库,即使在模式 8 下,您已经在使用新的数据格式。
  4. 是的,您可以回滚。它没有改变,它只是设置了一个标志,上面写着“我的查询是兼容的”。
于 2008-09-16T22:12:28.773 回答
0

兼容模式禁用了较新版本的功能,我个人并没有真正使用过很多有问题的数据库,关键是我们环境中的问题是移动到9之后,您无法再使用企业管理器查看数据库。

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

于 2008-09-16T22:04:19.760 回答
0

(我确实说过,只有当您从 6.5 迁移时,char()当 NULL - 70 和更高版本使用整个字段时,它不会在字段中存储任何内容,这可能会导致大规模的大小变化。)

VBStreets 在他的观点上是正确的——当然在第 3 点上——当你在 2005 年第一次运行数据库时,它转换了数据结构。如果您进行备份,则无论兼容性级别如何,都无法在以前的版本上恢复它。

于 2008-09-17T13:25:45.550 回答