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

问题描述:

我有两个数据库说DB_A和DB_B。在DB_A数据库中,具有巨大数据的表(少数表有2至1000万个数据)。我想将所有表数据从DB_A移动到DB_B数据库。请帮助我编写存储过程,以便将数据从一个数据库高效(快速)转移到另一个数据库。在SQL Server中将庞大的表数据从一个数据库复制到另一个数据库

+0

Whocj版本的SQL Server? – MartW 2010-03-12 10:29:13

+0

复制为主题标题或移动? – 2010-03-12 10:30:43

+0

您在移动数据时需要将数据库在线吗? – pedromarce 2010-03-12 10:54:28

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

所以......尝试是这样的:

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

Checkpoint; 
End 
+0

(并且拥有简单恢复模型中的数据库) – 2010-03-12 10:25:57

+0

当然你可以远远高于100。选择你喜欢的东西(关于日志大小) – 2010-03-12 10:27:18

无需推倒重来,你有没有考虑为移动数据库的数据使用SQL Server Replication

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

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