将SQL 2008 DB R2还原到SQL 2008(不是r2)

时间:2011-07-28 11:05:11

标签: c# sql sql-server sql-server-2008

我的开发者PC上的

安装了SQL 2008 R2
在内部服务器上安装了SQL 2008 R2(这里托管了一些应用程序)
在外部的第三方托管公司使用SQL 2008(没有r2)。

所以当我在我的开发者PC上创建数据库时,我需要在外部托管服务器上恢复,这是SQL 2008(没有r2)....但是我得到了一个构建版本错误...它说SQL2008 r2有更高内部版本号,所以我无法在w / o r2服务器上恢复。

我想在没有R2服务器上创建数据库并在我的localhost上恢复并进行更改并恢复到w / o r2服务器,但它说同样的错误......内部版本号已更改。

我以为我可以在我的开发者电脑上删除r2版本并使用SQL 2008 w / o r2,但问题仍然是我无法将数据库从内部服务器恢复到我的开发者电脑...... :(

简而言之: 如果我想在SQL2008 R2和SQL2008之间恢复/备份数据库,如何处理这个问题(我需要数据库的数据?要分配给数据库的任何属性还是其他什么?

是否有一个程序可以将SQL2008 R2 DB用作SQL2008 DB?

我无法触及服务器上的SQL 2008版本......

请咨询?

3 个答案:

答案 0 :(得分:4)

您必须使用SSMS中的向导导出/导入。或使用一些第三方工具(例如红门)

使用附加/分离或备份/恢复有 NO 降级选项。并且没有魔术设置。

答案 1 :(得分:4)

没有简单的属性可以切换到能够恢复到旧版本。 您可以在Management Studio中尝试此操作:

  • 选择源数据库
  • 选择任务>生成脚本。
  • 选择“脚本整个数据库和所有数据库对象”,然后按“下一步”
  • 选择“保存到文件”,然后单击“高级”按钮
  • 选择“服务器版本脚本”并选择所需版本:2000/2005/2008
  • 选择“脚本数据类型”并选择“架构/数据/两者”
  • 点击“确定”,然后点击下一步!
  • 将生成的文件复制到目标计算机。
  • 登录您的SQL Management Studio并打开复制的.sql文件...

如果您有一个小型数据库,它可能会起作用。对于较大的一个,你将遇到限制。

答案 2 :(得分:0)

我担心自SQL 6.5 / 7以来就是这样。一般来说,除了以下内容之外没有降级路径: 在另一篇文章中解释结构和其他对象,然后在具有较低版本/版本号的实例上创建一个新数据库(R2是SQL 10.5,2088是10.0) 然后,您可以使用SSIS或再次获取SSMS(Managemenet studio)来编写数据的插入语句(您需要按照forign键的依赖关系进行操作,并记住SET INDENTITYINSERT [table] ON,然后在最后再次关闭如果您有标识列,则插入每个表。 您可以使用INSERT INTO 2008Inst.2008dbName.dbo.Table(col1,...)SELECT(col1,...)FROM 2008R2Inst.2008dbName.dbo.Table来获取实际数据