4

我遇到了一种情况,我需要将多个表从一个 SQL Server DB 复制到一个单独的 SQL Server DB。数据库都在同一个实例上。我正在复制的表至少包含 450 万行,大小大约为 40GB 以上。

我以前使用过 BCP,但对它不是很熟悉,并且无法找到任何有关您是否可以使用 BCP 直接从表复制到表而不在两者之间写入文件的文档。

这可能吗?如果是这样,怎么做?

编辑:我们不使用直接插入的原因是因为我们在服务器上的日志驱动器上的空间有限,在尝试插入时几乎立即消失。我们确实尝试过,但是随着日志驱动器的填满,查询很快减慢到蜗牛的速度。

4

3 回答 3

7

来自我在表级备份中的回答

我正在使用bcp.exe来实现表级备份

导出:

bcp "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

导入:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

如您所见,您可以根据任何查询导出,因此您甚至可以使用它进行增量备份。

于 2013-01-05T17:43:01.190 回答
2

BCP 用于转储到文件/从文件中读取。使用 DTS/SSIS 从一个 DB 复制到另一个。

这是MSDN上的BCP 文档

于 2010-11-03T16:33:45.393 回答
2

SQL 导入/导出向导将完成这项工作......只需连接两次到同一个数据库(源和目标)并将一个表复制到另一个表(空和索引),如果存在,您可能需要指示忽略自动数字 ID 键字段。这种方法适用于超过 1M+ 记录的表。

于 2015-09-19T11:39:04.723 回答