C# 将SQL 2008 DB R2恢复到SQL 2008(无R2)

C# 将SQL 2008 DB R2恢复到SQL 2008(无R2),c#,sql,sql-server,sql-server-2008,C#,Sql,Sql Server,Sql Server 2008,在我的开发pc上安装了SQL 2008 R2 内部服务器上安装了SQL 2008 R2(一些应用程序托管在此处) 在外部第三方上,托管公司使用SQL 2008(无r2)。 所以,当我在我的开发pc上创建DB时,我需要在外部托管服务器SQL 2008(w/o r2)上进行恢复。。。。但我得到一个生成版本错误。。。它说SQL2008 r2有更高的版本号,所以我无法在w/o r2服务器上恢复 我想在w/o R2服务器上创建DB,在本地主机上恢复,然后进行更改并恢复回w/o R2服务器,但它说的是相同的

在我的开发pc上安装了SQL 2008 R2
内部服务器上安装了SQL 2008 R2(一些应用程序托管在此处)
在外部第三方上,托管公司使用SQL 2008(无r2)。

所以,当我在我的开发pc上创建DB时,我需要在外部托管服务器SQL 2008(w/o r2)上进行恢复。。。。但我得到一个生成版本错误。。。它说SQL2008 r2有更高的版本号,所以我无法在w/o r2服务器上恢复

我想在w/o R2服务器上创建DB,在本地主机上恢复,然后进行更改并恢复回w/o R2服务器,但它说的是相同的错误。。。版本号已更改

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

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

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

我无法在服务器上触摸SQL 2008版本


请给出建议?

您必须使用SSMS中的向导进行导出/导入。或者使用一些第三方工具(如Red Gate)


使用“附加/分离”或“备份/还原”,可以选择“否”降级选项和“否”魔术设置。

没有简单的属性可以切换以还原到旧版本。 您可以在Management Studio中尝试以下操作:

  • 选择源数据库
  • 选择任务>生成脚本
  • 选择“为整个数据库和所有数据库对象编写脚本”,按“下一步”
  • 选择“保存到文件”并单击“高级”按钮
  • 选择“服务器版本脚本”并选择所需的版本:2000/2005/2008
  • 选择“要编写脚本的数据类型”,然后选择Schema/data/both
  • 单击“确定”,然后执行下一步操作
  • 将生成的文件复制到目标计算机
  • 登录SQL Management Studio并打开复制的.SQL文件

如果你有一个小的数据库,它很可能会工作。对于一个大的数据库,你会遇到限制。

恐怕从SQL 6.5/7开始就是这样。一般来说,没有降级路径,除了以下路径: 按照另一篇文章中的解释编写结构和其他对象的脚本,然后在一个版本号较低的实例上创建一个新数据库(R2是SQL 10.5,2088是10.0) 然后,您可以使用SSI或再次让SSMS(Managemenet studio)为数据编写insert语句脚本(您需要按照键相关性的顺序执行,并记住在每个表插入结束时,如果您有标识列,请将INDINTITYINSERT[table]设置为ON,然后再设置为off)。
您可以使用INSERT INTO 2008Inst.2008dbName.dbo.Table(col1,…)从2008R2Inst.2008dbName.dbo.Table中选择(col1,…)以获取实际数据accross

这还会为表的数据(记录)生成SQL语句吗?我尝试了类似的方法,但没有获取数据(记录)…表是空的…如果您确保进入高级脚本选项,并为数据类型选择这两个选项,那么您也将获得所有记录的insert语句。我使用的是导入功能等…但仍然需要大量工作,标识等@mesut:yep。始终在部署到的sane版本(包括service pack等)上开发。。。