如何使用不同版本的SQL Server Management Studio在数据库之间移动数据?

时间:2013-02-06 16:56:33

标签: sql-server sql-server-2008 tsql

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

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

  

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

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

6 个答案:

答案 0 :(得分:3)

此答案仅在您需要数据时(来自此处:http://sqlserverlearner.com/tag/the-database-was-backed-up-on-a-server-running-version-10-50-1600-that-version-is-incompatible-with-this-server):

  • 在任务下编写您想要的对象(表和数据),生成脚本,选择对象,并确保包含所有数据(也可能包括模式)。将其带到一个新的查询窗口并保存SQL文件,然后在另一台服务器上执行它。

答案 1 :(得分:0)

你可以

  • 为有问题的数据生成INSERT语句
  • 创建从测试到其他服务器的链接服务器,并针对该
  • 运行sql语句
  • 将目标服务器升级到2008 R2(这不是一件容易的事)

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

答案 2 :(得分:0)

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

可以使用以下选项,

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

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

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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