将SQL 2008 DB R2 还原到 SQL 2008 (非R2)

3
在我的开发电脑上安装了SQL 2008 R2
内部服务器上安装了SQL 2008 R2(托管了一些应用程序)
外部第三方托管公司使用的是SQL 2008(不带R2)。
所以当我在我的开发电脑上创建数据库时,我需要将其恢复到SQL 2008(没有r2)的外部托管服务器上....但是我收到了一个构建版本错误...它说SQL2008 r2具有更高的构建编号,因此我无法在没有r2服务器上还原。
我想在不带R2服务器上创建DB并将其恢复到我的本地主机,并进行更改后再恢复回不带r2服务器,但它仍然显示相同的错误...构建编号已更改。
我想删除我开发人员PC上的r2版本并使用没有r2的SQL 2008,但问题仍然存在:我无法将DB从内部服务器还原到我的开发人员PC...:(
简而言之: 如果我想在SQL2008 R2和SQL2008之间进行还原/备份DB,该怎么处理(我还需要数据库的数据吗?要为DB分配任何属性或其他内容吗?
有没有一种方法可以将SQL2008 R2 DB用作SQL2008 DB?
我不能触摸服务器上的SQL 2008版本...
请给予建议?
3个回答

4

您需要使用SSMS中的向导进行导入/导出,或者使用某些第三方工具(例如Red Gate)。

使用附加/分离或备份/还原没有降级选项。也没有魔法设置。


我曾经使用了Import函数等等...但是仍然需要大量的工作,包括身份验证等等。 - ethem
1
@mesut:没错。始终在开发和部署时使用相同的版本(包括服务包等)。 - gbn

4

没有简单的属性可以切换以便恢复到旧版本。您可以在管理工具中尝试以下操作:

  • 选择源数据库
  • 选择任务>生成脚本
  • 选择“脚本整个数据库和所有数据库对象”,按“下一步”
  • 选择“保存到文件”,然后点击“高级”按钮
  • 选择“为服务器版本编写脚本”,并选择所需版本:2000/2005/2008
  • 选择“要编写脚本的数据类型”,并选择模式/数据/两者
  • 点击“确定”、“下一步”,然后执行操作!
  • 将结果文件复制到目标计算机。
  • 登录SQL管理工具,打开复制的.sql文件...

对于小型数据库,这种方法可能有效。但对于大型数据库,您可能会遇到限制。


这个会生成表的数据(记录)的SQL语句吗?我尝试过类似的操作,但没有得到数据(记录),表是空的。 - ethem
如果您确保进入高级脚本选项并选择数据类型为“both”,则将获取所有记录的插入语句。 - DavveK

0

恐怕自从SQL 6.5 / 7以来就一直是这样。通常情况下,除了以下方法外,没有降级路径: 按照另一篇帖子中所述的脚本结构和其他对象,然后在具有较低版本号/生成版本号的实例上创建一个新数据库(R2是SQL 10.5,2088是10.0)。 然后,您可以使用SSIS或再次获取SSMS(Managemenet Studio)为数据编写插入语句(您需要按照外键依赖关系的顺序进行,并记得在每个表插入结束时将SET INDENTITYINSERT [table] ON打开并关闭)如果您有标识列。 您可以使用INSERT INTO 2008Inst.2008dbName.dbo.Table(col1,...)SELECT(col1,...)FROM 2008R2Inst.2008dbName.dbo.Table来获取实际数据


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接