SQL Server数据库的兼容级别

时间:2013-06-26 11:04:51

标签: sql-server sql-server-2008 sql-server-2005 compatibility

我的数据库托管服务商允许恢复兼容级别为90的SQL Server数据库(SQL Server 2005)。我的数据库是在本地创建的,兼容级别为100(SQL Server 2008)。

因此,我生成了我的数据库脚本(2008版)并在SQL Server 2005中运行,备份并恢复到我的数据库主机,它可以工作。目前我确实喜欢它。

然后我发现ALTER DATABASE可以改变数据库喜欢的兼容级别

ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = { 90 | 100 | 110 }

 90 = SQL Server 2005
 100 = SQL Server 2008 and SQL Server 2008 R2
 110 = SQL Server 2012

我在SQL Server 2008中使用此脚本转换数据库兼容级别,备份我的数据库并还原到我的数据库托管服务器。但它不起作用。我想知道为什么?有没有更好的方法来解决它?

3 个答案:

答案 0 :(得分:10)

您可以从不将数据库从较新版本的SQL Server(例如 2008 版本)还原到较旧的SQL Server(2005)实例上。

无论你尝试什么,没有技巧,没有黑客,没有解决方法 - 它只是无法完成

兼容级别也没有任何区别。它只会使您的新数据库(如2008年)表现得像旧的数据库(如2005) - 因此您可以使用的功能仅限于旧数据库支持的功能。

但在内部 - 它仍然是 2008数据库,并且无法恢复到2005实例。

答案 1 :(得分:3)

你不能更好地回到sql server的版本兼容性来完成脚本。

答案 2 :(得分:1)

  1. 建立新数据库
  2. 导入新数据库中的表
  3. 然后生成过程和函数的脚本,并在新数据库上运行此脚本