BCP可以直接从表到表复制数据吗?

时间:2010-11-03 16:30:00

标签: sql-server-2008 bcp

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

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

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

编辑:我们之所以没有使用简单的INSERT是因为我们在服务器上的日志驱动器上的空间有限,这在尝试INSERT时几乎立即消失。我们确实尝试了,但是当日志驱动器填满时,查询很快就减慢了蜗牛的速度。

3 个答案:

答案 0 :(得分:6)

来自Table-level backup

的答案

我正在使用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

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

答案 1 :(得分:2)

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

以下是MSDN上的BCP docs

答案 2 :(得分:2)

SQL导入/导出向导将执行此任务...只需连接两次到同一个数据库(源和目标)并将一个表复制到其他(空和索引),您可能希望指示忽略自动数字Id键字段if存在。这种方法适用于超过1M +记录的表。

相关问题