我需要将供应商提供的客户端 - 服务器应用程序中的数据库迁移到SQL Server 2008.我们运行的应用程序版本在SQL Server 2000 SP4和SQL Server 2005 SP2上受支持,但不支持2008年 - 原因是,然而,主要是因为供应商希望我们升级到当前版本(计划于2014年第1季度/第2季度),并且不希望“启用”我们留在旧版本的应用程序。
我的问题是,如果我在兼容级别为80的SQL Server 2008上恢复数据库,并且不对其进行任何更改(它是供应商数据库),可能会出现什么问题?据我所知,我无法将数据库恢复到2005/2000 - 这是没有必要的。我更关心可能已被编码到假设2005或更低版本的proc中的内容 - 我到目前为止找到了一个例子,修改版本声明(@@ version =“SQL Server 2008”)就可以了。还有什么需要考虑的?仅供参考 - 仅使用标准数据库对象 - 没有工作,DTS,SSRS,SSIS等。此外,我已经完成了大量的应用程序测试,登录到2008年,目前没有任何问题。
答案 0 :(得分:0)
就我个人而言,我非常怀疑他们的应用依赖 80兼容性,并认为如果你移动到90或100,任何事情都不会破坏。这通常只是一种方式。供应商延迟不得不针对较新版本的SQL Server对其旧应用进行详细测试,特别是如果 - 正如您所说 - 他们有新版本出现。
但是,我们没有太多可以指导您的应用是否会在更新的竞争级别上突破。我们不知道他们正在使用什么代码以及他们使用的80个特定功能。例如,他们可能正在使用旧式外连接语法(FROM a, b WHERE a.x *= b.x
),这将在>中断。 80。
我认为最安全的方法是对数据库进行完整备份,将副本还原到2008,将其移至 90 兼容性(因为这是最新的版本他们支持),或 100 如果你感觉活泼,然后测试应用程序的 副本 。他们可能因为不支持新版本而过于保守,但不会有任何负面结果。如果完整的回归和兼容性测试工作正常,那么您应该能够升级您的应用程序。