将 SQL Server 2008 数据库还原到 SQL Server 2000
我必须将整个数据库从 SQL Server 2008 计算机移动到 SQL Server 2000 计算机。
我使用 Management Studio 2008 创建了一个备份,将其复制到 2000 盒子的硬盘驱动器,然后从 Management Studio 2008 中选择“将数据库还原到 2000 盒子”。
我收到一条错误消息,指出“设备上的媒体系列...格式不正确。SQL Server 无法恢复此媒体系列”。
如果我使用 Enterprise Manager 2000,我会得到同样的错误。
有没有办法将整个数据库从较新的 SQL Server 迁移到较旧的 SQL Server?
I have to move an entire database from a SQL Server 2008 machine to a SQL Server 2000 machine.
I created a backup using Management Studio 2008, copied it to the hard drive of the 2000 box, and from withing Management Studio 2008, I choose Restore Database to the 2000 box.
I get an error message stating, "The media family on device ... is incorrectly formed. SQL Server cannot restore this media family".
If I use Enterprise Manager 2000 I get the same error.
Is there a way to move a whole database from the newer SQL server to the older?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
我唯一能想到的是重新创建整个结构,然后从实时数据库复制数据。因此,创建将创建表、视图和 sp 的脚本,然后创建脚本以从现有数据库复制数据。
The only thing I can think of is to recreate the whole structure and then copy data from a live database. So, create scripts that will create the tables, views, and sp's, and then create scripts to copy the data from the existing database.
正如其他人已经说过的,没有默认的方法可以做到这一点。只是不支持而已。以下是有关如何正确执行此操作并避免任何迁移问题的更多详细信息。
您需要为结构和数据生成脚本,然后在 SQL 2000 上执行这些脚本(就像其他人已经说过的那样),但有一些事情需要考虑。
在 SSMS 中生成脚本
对于中小型数据库来说,这是一个很好的选择,并且需要一些 SQL Server 知识(依赖性、版本之间的差异等)
第三方工具
As others already said there is no default way to do this. It’s just not supported. Here are more extensive details on how to do this properly and avoid any migration issues.
You need to generate scripts for structure and data and then execute these on SQL 2000 (like others already said) but there are couple things to take into account.
Generate scripts in SSMS
This is a great option for small to medium size databases and requires some knowledge of SQL Server (dependencies, differences between versions and such)
Third party tools
您无法将备份从较新版本移动到较旧版本,在这种情况下,您可以编写数据库脚本,在 2000 框中执行它,然后您可以使用标准数据传输来传输您想要的任何数据
you can't move backups from a newer version to an older, in that case you can script your database, execute it in the 2000 box, then you can use the standard data transfer to transfer any data you want
前提是您在使用 SSIS 的计算机之间有网络连接。容易得多,也少了很多麻烦。
Provided you have a network connection between the machines use SSIS. Much easier and a lot less messing around.
您可以为您的数据库使用脚本生成器,然后在属性表单中选择:常规->服务器版本的脚本:SQL Server 2000。
脚本生成器将向您显示与您的服务器版本不兼容的内容。
You can use Script Generator for your database and then select in the properties form : General-> Script for server version : SQL Server 2000.
The script generator will show you things which not compatible with your server version.
我听说您只能通过从数据库管理工具生成 SQL 语句转储并在目标旧数据库上重新运行这些查询来完成此操作。
I've heard you can only do it by generating the SQL statement dump from the DB administrator tool and re-running those queries on the target older database.
您可以生成一个脚本来重新创建所有对象并传输所有数据...只要数据库中的所有内容在 SQL 2000 中都有效。因此没有 ROW_NUMBER()、没有 PARTITION、没有 CTE、没有 datetime2、层次结构或多个其他字段类型,没有 EXECUTE AS,以及许多其他优点。基本上,除非您的数据库非常基本,否则很有可能这是不可能的。
You can generate a script that will recreate all the objects and transfer all the data...as long as everything in the db is valid in SQL 2000. So no ROW_NUMBER(), no PARTITION, no CTEs, no datetime2, hierarchy or several other field types, no EXECUTE AS, and lots of other goodness. Basically, there's a pretty good chance it's not possible unless your db is pretty basic.
我们也遇到过类似的情况。一个技术含量很低但方便的解决方案是:
We got a similar situation. A very low-tech but handy solution is:
insert into LINKED SERVER.table select * from table