更改SQL Server数据库版本

时间:2010-06-30 07:21:59

标签: sql-server

我有一个SQL Server 2008版本数据库(版本号655)。如果我尝试创建将其附加到SQL Server 2005或SQL Server 2000,我会收到错误:

  

此数据库的版本为655.此服务器与版本612或之前的版本

兼容

当然,我可以将数据库附加到SQL Server 2008而不会出现错误。我知道我可以为结构生成SQL命令,但许多表中也有很多数据。

如果我可以更改内部数据库版本(兼容级别现在设置为SQL Server 2000),则任何服务器版本中的附加进程都将起作用,因为此进程会自动更新版本。

有什么建议吗?

编辑:我刚才意识到,如果版本号的更新是自动的,那么将无法进行版本更改。所以,我重新提出了这个问题:

您是否知道任何生成“包”的工具,其数据和结构与2000年到2008年的SQL Server版本兼容?也许是工具或脚本。

再次感谢。

提前致谢。

6 个答案:

答案 0 :(得分:5)

在任何情况下都可以将数据库从SQL Server 2008服务器附加到SQL Server 2005之前的版本。

没有办法实现这一点 - 没有“转换”工具来更改数据库版本或任何东西。

如果您需要支持SQL Server 2005,则必须拥有一台SQL Server 2005服务器(可能在VM或其他东西中)。或者您需要使用Red Gate的SQL CompareSQL Data Compare等工具来同步SQL Server 2008和其他SQL Server 2005数据库之间的更改。

答案 1 :(得分:2)

不,抱歉。在过时的SQL Server上重新创建数据库。与大多数软件一样,SQL Server仅支持UPGRADES,而不支持降级。

答案 2 :(得分:2)

这是不可能的。您不能将SQL Server数据库附加/还原到早期版本的SQL Server。你必须进行出口/进口。

答案 3 :(得分:0)

不,你不能将sql 2008降级为sql 2005

答案 4 :(得分:0)

  

¿你知道任何生成“包”的工具,其数据和结构与2000年到2008年的SQL Server版本兼容吗?也许是工具或脚本。

老帖子。我为期货读者添加了2条建议。新的T-SQL功能(语法)不能反向移植(当然),但对于简单的场景(每个表都有主键),您可以临时设置和使用事务复制。您还可以编写一个脚本来BCP OUT每个表的数据(我建议/本机模式),也许使用sp_MSForEachTable作为该BCP命令 - 这实际上是复制的快照过程所做的。

答案 5 :(得分:0)

我有同样的问题,但是有解决此问题的方法:

  • 将数据库从Server 2008(或更高版本)附加到SQL Server 2005(或2000)

从较高版本的SQL生成脚本(右键单击数据库>任务>生成脚本),然后在较低版本的SQL上创建原始数据库(同名)并运行脚本。

  • 您可以选择生成所有数据(或仅创建表-存储procdure-user-functions ...),然后导入到SQL低版本数据库中

我针对SQL 2012到SQL 2005测试了此解决方案。 除了为SQL更高版本开发的新功能之外,每个架构和数据都会生成为.sql文件,然后导入到较低的SQL