2

我在测试机器和生产机器上部署了一个数据库。测试数据库中有一些数据(表的列)我想复制到生产环境中。

当我尝试将备份恢复到生产盒时,我收到以下错误:

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

是否有另一种方法可以将数据放入表中?

4

6 回答 6

3

仅当您需要数据时才回答此问题(来自此处:http ://sqlserverlearner.com/tag/the-database-was-backed-up-on-a-server-running-version-10-50-1600-that-版本与此服务器不兼容):

  • 在任务下编写所需的对象(表和数据),生成脚本,选择对象,并确保包括所有数据(可能还有模式)。将其带到一个新的查询窗口并保存 SQL 文件,然后在您的其他服务器上执行它。
于 2013-02-06T17:05:08.790 回答
0

你可以

  • 为相关数据生成 INSERT 语句
  • 创建从测试到另一台服务器的链接服务器并针对该服务器运行 sql 语句
  • 将目标服务器升级到 2008 R2(这不能掉以轻心)

您应该将您的环境保持在相同的版本/版本。SQL Server 还原不向后兼容。

于 2013-02-06T17:00:04.800 回答
0

这是恢复数据库时sqlserver版本不匹配的问题。这意味着无法将数据库服务器2008恢复到2005。它不支持更高版本到更低版本。

以下选项可用,

  1. 您可以链接服务器并将表从一台服务器移动到另一台服务器

  2. 生成sql脚本并在目标数据库中执行

使用以下 URL 生成插入脚本并将生成的脚本执行到目标服务器。

http://www.codeproject.com/Articles/5598/Generating-INSERT-statements-in-SQL-Server

于 2013-02-06T17:01:43.423 回答
0

使用带有数据的生成脚本,您可以选择 MSSQL 的版本。然后在您想要的服务器上运行输出的 SQL。

于 2013-02-06T17:02:18.087 回答
0

理想情况下,您应该升级生产服务器以匹配您的测试环境,否则您的测试可能并不总是具有代表性。

但是,如果它们是不同的版本,则无法将数据库还原到旧版本的 SQL Server,您应该使用生成脚本命令来创建新表并插入数据,或者使用 SQL 比较/数据比较之类的工具来自 RedGate,它将为您完成所有这些工作。

于 2013-02-06T17:06:03.323 回答
0

您可以使用 redgate toolbelt 工具包在不同版本的 sql server 或 sql server to sql azure 或 sql azure to sql server database 之间同步数据。它非常易于使用。

于 2013-02-06T18:50:53.877 回答