我在测试机器和生产机器上部署了一个数据库。测试数据库中有一些数据(表的列)我想复制到生产环境中。
当我尝试将备份恢复到生产盒时,我收到以下错误:
System.Data.SqlClient.SqlError:数据库备份在运行版本 10.50.1600 的服务器上。该版本与运行版本 10.00.4000 的此服务器不兼容。在支持备份的服务器上恢复数据库,或使用与该服务器兼容的备份。(Microsoft.SqlServer.Smo)
是否有另一种方法可以将数据放入表中?
我在测试机器和生产机器上部署了一个数据库。测试数据库中有一些数据(表的列)我想复制到生产环境中。
当我尝试将备份恢复到生产盒时,我收到以下错误:
System.Data.SqlClient.SqlError:数据库备份在运行版本 10.50.1600 的服务器上。该版本与运行版本 10.00.4000 的此服务器不兼容。在支持备份的服务器上恢复数据库,或使用与该服务器兼容的备份。(Microsoft.SqlServer.Smo)
是否有另一种方法可以将数据放入表中?
仅当您需要数据时才回答此问题(来自此处:http ://sqlserverlearner.com/tag/the-database-was-backed-up-on-a-server-running-version-10-50-1600-that-版本与此服务器不兼容):
你可以
您应该将您的环境保持在相同的版本/版本。SQL Server 还原不向后兼容。
这是恢复数据库时sqlserver版本不匹配的问题。这意味着无法将数据库服务器2008恢复到2005。它不支持更高版本到更低版本。
以下选项可用,
您可以链接服务器并将表从一台服务器移动到另一台服务器
生成sql脚本并在目标数据库中执行
使用以下 URL 生成插入脚本并将生成的脚本执行到目标服务器。
http://www.codeproject.com/Articles/5598/Generating-INSERT-statements-in-SQL-Server
使用带有数据的生成脚本,您可以选择 MSSQL 的版本。然后在您想要的服务器上运行输出的 SQL。
理想情况下,您应该升级生产服务器以匹配您的测试环境,否则您的测试可能并不总是具有代表性。
但是,如果它们是不同的版本,则无法将数据库还原到旧版本的 SQL Server,您应该使用生成脚本命令来创建新表并插入数据,或者使用 SQL 比较/数据比较之类的工具来自 RedGate,它将为您完成所有这些工作。
您可以使用 redgate toolbelt 工具包在不同版本的 sql server 或 sql server to sql azure 或 sql azure to sql server database 之间同步数据。它非常易于使用。