4

在我的客户站点上,他们在我的开发环境中的 Server 2008 OS 机器上安装了 SQL Server 2008 R2 64 位 Express 版我有——安装了 32 位 Vista 机器和 Sql Server 2008 Express 版

我的问题是如何将 64 位数据库的备份恢复到我的 32 位数据库

我尝试了什么 1)创建 64 位数据库的备份并在我的 32 位机器上创建数据库并还原它我收到错误

服务器“egov041\SQLEXPRESS2008”的恢复失败。(Microsoft.SqlServer.SmoExtended)

System.Data.SqlClient.SqlError:数据库备份在运行版本 10.50.1600 的服务器上。该版本与运行版本 10.00.2531 的此服务器不兼容。在支持备份的服务器上恢复数据库,或使用与该服务器兼容的备份。(Microsoft.SqlServer.Smo)

2) 从服务器机器复制 MDF 和 LDF 文件并将其附加到我的机器上

我收到一个错误

为服务器“egov041\SQLEXPRESS2008”附加数据库失败。(Microsoft.SqlServer.Smo)

附加信息:

执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)

无法打开数据库“PwdMhToll”,因为它是版本 661。此服务器支持版本 655 和更早版本。不支持降级路径。无法打开新数据库“PwdMhToll”。CREATE DATABASE 已中止。(Microsoft SQL Server,错误:948)

我指的是 1) http://social.msdn.microsoft.com/Forums/en/sqlexpress/thread/49f0adf1-8254-4e4a-b7ce-d9406d0ab6d6

2) http://blog.sqlauthority.com/2011/03/27/sql-server-32-bit-64-bit-html5-database-backup-restore/

3) http://blogs.msdn.com/b/cindygross/archive/2010/04/01/moving-data-between-32-bit-and-64-bit-sql-server-instances.aspx?CommentPosted=真的#commentmessage

从这些帖子中我得出结论,这是可能的,有没有人建议我的数据库恢复有什么问题......提前致谢

4

3 回答 3

3

您的问题不在于 32 位与 64 位,而是您正在尝试在旧版本上恢复/附加数据库。

如果要完成此操作,最好的方法是编写数据库(模式和数据)脚本,然后在目标实例上运行脚本。

于 2012-05-28T14:13:11.873 回答
2

数据库备份在运行版本 10.50.1600 的服务器上。该版本与运行版本 10.00.2531 的此服务器不兼容。

这强烈暗示源数据库是 2008 R2,而您本地安装的版本是 2008(不是 R2)。

于 2012-05-28T13:51:14.393 回答
0

我发现这样做的最佳方法是生成数据库脚本并在其他机器上执行它,这解决了我的问题,完整步骤请参考 http://blog.sqlauthority.com/2007/08/21/sql-server -2005-create-script-to-copy-database-schema-and-all-the-objects-stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects

于 2012-05-29T09:46:00.177 回答