从 SQL Server 7.0 或更早版本复制数据库

本主题讨论如何从无法升级到当前版本的旧版本的 SQL Server 迁移数据库。

注意注意

在您安装 SQL Server 2008 R2 时,所有现有的 SQL Server 2000 或 SQL Server 2005 数据库都自动升级(SQL Server 2008 数据库已经与 SQL Server 2008 R2 兼容)。若要复制升级的数据库,您可以使用 SQL Server 2008 数据库支持的任何一种复制方法。有关详细信息,请参阅将数据库复制到其他服务器

SQL Server 7.0 数据库

您可以使用下列方法之一将 SQL Server 7.0 版数据库转换为 SQL Server 2008 R2:

  • 通过将数据库附加到正在运行的实例,将 SQL Server 7.0 数据库升级到 SQL Server 2000 或 SQL Server 2005。然后,您可以将该数据库升级到 SQL Server 2008 R2。通常,这是首选方法。

    有关使用附加升级 SQL Server 2000 或 SQL Server 2005 数据库的信息,请参阅如何使用分离和附加来升级数据库 (Transact-SQL)

  • 使用 SQL Server 导入和导出向导在 SQL Server 的多个实例之间复制数据。此向导将会处理具有访问接口的所有源和目标,不过可能会发生数据转换问题,这取决于数据源。有关详细信息,请参阅使用 SQL Server 导入和导出向导移动数据

  • 请按照如下说明从 SQL Server 7.0 中创建的数据库中迁移数据:

    1. 使用 bcp 的 7.0 版,通过使用 bcpout 命令将数据导出到数据文件。

    2. 使用 bcp 的 SQL Server 2008 R2(10.50 版)中的 bcp.exe 的版本,通过使用 bcpin 命令从数据文件中导入数据。如果数据文件包含本机数据格式,请指定 -V70–n 选项,这将告知 bcp in 操作使用 SQL Server 7.0 本机数据类型。

    有关详细信息,请参阅导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

SQL Server 6.0 或 SQL Server 6.5 数据库

若要从 SQL Server 6.0 版或 SQL Server 6.5 版数据库迁移数据,请使用该版本 SQL Server 中的 bcp 实用工具以字符模式 (bcpout) 将数据导出到数据文件。然后,您可以将字符数据导入到 SQL Server 2008 R2 数据库。不过,SQL Server 2008 R2 不支持 SQL Server 6.0 和 SQL Server 6.5 本机数据格式。这意味着 SQL Server 2008 R2 中 bcp.exe 的版本不支持 -6 命令行选项,或 –V 命令行选项的 6065 选项。

注意注意

使用 SQL Server 6.5 或早期版本创建的数据库备份采用的格式不兼容,无法在 SQL Server 2005 和更高版本中还原。

升级后的数据库兼容级别

升级后,tempdbmodelmsdbResource 数据库的兼容级别将设置为 100。master 系统数据库保留它在升级之前的兼容级别,除非该级别小于 80。如果 master 的兼容级别在升级前小于 80,升级后兼容级别将设置为 80。新的用户数据库将继承 model 数据库的兼容级别。

如果升级前用户数据库的兼容级别为 80 或 90,升级后将保持相应级别。如果升级前兼容级别为 70 或更低,则在升级后的数据库中,兼容级别将设置为 80,该级别为 SQL Server 2008 R2 支持的最低兼容级别。

注意注意

有关在 SQL Server 2008 R2 上使用 SQL Server 7.0、SQL Server 2000 或 SQL Server 2005 数据库的信息,请参阅 ALTER DATABASE 兼容级别 (Transact-SQL)