在SQL Server中将大表数据从一个数据库复制到另一个数据库

时间:2010-03-12 10:19:56

标签: sql-server

我有两个数据库说DB_A和DB_B。在DB_A数据库中,具有大量数据的表(少数表具有2到1千万个数据)。我想将所有表数据从DB_A移动到DB_B数据库。请帮我编写存储过程,以便有效(快速)地将数据从一个数据库移动到另一个数据库。

2 个答案:

答案 0 :(得分:2)

问题是如何处理您的事务日志。它必须写入两者,但你应该以块的形式处理它。

所以......尝试这样的事情:

While exists (select * from db1.dbo.tablename)
Begin
 Delete top 100 from db1.dbo.tablename
 Output deleted.* into dbo.tablename;

 Checkpoint; 
End

答案 1 :(得分:0)

无需重新发明轮盘,您是否考虑过使用SQL Server Replication来移动数据库数据?

例如,使用事务复制,您可以定义要复制/复制的数据库表的发布。

然后,您可以临时同步数据,使用快照,或者如果您希望“近实时”保持数据最新,那么您可以使用连续复制。