在服务器间复制数据

若要在 Microsoft SQL Server 数据库之间大容量传输数据,必须先将源数据库中的数据大容量导出到一个文件中。然后将此文件大容量导入到目标数据库中。

重要说明重要提示

对于使用“简单恢复模式”的数据库,建议在将数据大容量导入到表中后执行差异备份。对于使用大容量日志恢复模式或“完整恢复模式”的数据库,执行日志备份即可。有关详细信息,请参阅创建 SQL Server 数据库的完整备份和差异备份使用事务日志备份

使用 bcp 或 Transact-SQL 在服务器间复制数据

您可以使用 bcp 命令导出或导入数据,使用 BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...)Transact-SQL 语句来导入数据。有关详细信息,请参阅使用 bcp 实用工具导入和导出大容量数据使用 BULK INSERT 或 OPENROWSET(BULK...) 导入大容量数据

bcp 命令可用于在不同处理器体系结构的不同 SQL Server 实例间复制本机格式、字符格式或 Unicode 格式的数据。如果需要考虑灵活性,则可以使用格式化文件。如果导出数据时使用了某种格式或格式化文件,则导入数据时也必须使用相应的格式或格式化文件。

注意注意

如果您在使用不同排序规则的服务器实例间复制数据,请参阅在不同排序规则间复制数据

以 Unicode 本机格式存储信息

如果必须在 SQL Server 实例之间复制信息,则以 Unicode 本机格式存储信息会非常有用。如果对非字符数据使用本机格式,则不但可以节省时间还能够避免在各数据类型与字符格式之间进行不必要的转换。如果将扩展字符复制到非 Unicode 列,但这些字符无法表示出来,则可能会丢失这些字符。在使用不同代码页的服务器之间大容量传输数据时,对所有字符数据使用 Unicode 字符格式可以避免丢失扩展字符。但是,bcp 或支持大容量导入的 Transact-SQL 语句 [BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...)] 可以读取 Unicode 本机格式的数据文件。

在数据库之间复制数据的其他方法

除了使用 bcp 或 Transact-SQL 外,一般您还可以使用下列任何一种方法在 SQL Server 数据库之间复制数据:

注意注意

有关复制完整数据库的信息,请参阅将数据库复制到其他服务器