我的数据库托管服务商允许恢复兼容级别为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中使用此脚本转换数据库兼容级别,备份我的数据库并还原到我的数据库托管服务器。但它不起作用。我想知道为什么?有没有更好的方法来解决它?
答案 0 :(得分:10)
您可以从不将数据库从较新版本的SQL Server(例如 2008 版本)还原到较旧的SQL Server(2005)实例上。
无论你尝试什么,没有技巧,没有黑客,没有解决方法 - 它只是无法完成。
兼容级别也没有任何区别。它只会使您的新数据库(如2008年)表现得像旧的数据库(如2005) - 因此您可以使用的功能仅限于旧数据库支持的功能。
但在内部 - 它仍然是 2008数据库,并且无法恢复到2005实例。
答案 1 :(得分:3)
你不能更好地回到sql server的版本兼容性来完成脚本。
答案 2 :(得分:1)