1

我需要将供应商提供的客户端服务器应用程序中的数据库迁移到 SQL Server 2008。我们运行的应用程序版本在 SQL Server 2000 SP4 和 SQL Server 2005 SP2 上受支持,但在 2008 上不支持 - 但是原因是主要是因为供应商希望我们升级到当前版本(计划在 2014 年第 1 季度/第 2 季度推出),并且不想“让”我们继续使用旧版本的应用程序。

我的问题是,如果我在兼容级别 80 的 SQL Server 2008 上恢复数据库,并且不对它进行任何更改(它是供应商数据库),会出现什么问题?我知道我无法将数据库恢复到 2005/2000 - 这没有必要。我更关心假定 2005 或更低版本的 procs 中可能被编码的内容 - 到目前为止,我已经找到了一个示例,并且修改版本语句 (@@version = "SQL Server 2008") 起到了作用。还有什么要考虑的?仅供参考 - 仅使用标准数据库对象 - 没有作业、DTS、SSRS、SSIS 等。此外,我在 2008 年完成了广泛的应用程序测试,到目前为止没有任何问题。

4

1 回答 1

0

就个人而言,我非常怀疑他们的应用程序中的任何内容都依赖于 80 兼容性,并且认为如果您升级到 90 或 100,任何东西都不太可能发生故障。这通常只是供应商推迟对其进行详细测试的一种方式旧应用程序针对较新版本的 SQL Server,特别是如果 - 正如你所说 - 他们有一个新版本出来。

但是,对于他们的应用程序是否会在更新的兼容级别上中断,我们无能为力。我们不知道他们正在使用什么代码以及他们正在使用哪些 80 特定功能。例如,他们可能使用旧式外连接语法 ( FROM a, b WHERE a.x *= b.x),它会中断 > 80。

我认为最安全的方法是对数据库进行完整备份,将副本恢复到 2008,将其移至90兼容性(因为这是他们支持的最新版本),或者如果您感觉活泼,则为100,然后测试见鬼的应用程序的副本。他们可能因为不支持新版本而过于保守,但不会有任何负面结果。如果完整的回归和兼容性测试正常,那么您应该能够升级您的应用程序。

于 2013-12-10T19:55:21.210 回答