2008-11-24 64 views
6

我有一个相当大(很多千兆字节)的SQL Server数据表,我希望移动到同一台服务器上的另一个数据库中的表。在SQL Server表之间高效地移动大量数据集?

这些表格是相同的布局。

要做到这一点,最有效的方法是什么?

这是一次性操作,因此不需要自动化。

非常感谢。

回答

6

如果是一次性操作,为什么关心顶部效率如此之高?

SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable 

INSERT OtherDatabase..NewTable 
SELECT * FROM ThisDatabase..OldTable 

...并让它运行过夜。我敢说,在同一台服务器上使用SELECT/INSERT INTO与您所能获得的最佳效率相差不远。

+1

您提出了一个有效的观点。我想我只是被编程得太过“正确的方式”。查询在我键入时运行! – Martin 2008-11-24 15:18:26

2

或者您可以使用Microsoft SQL Server Management Studio中“管理”下的“SQL导入和导出向导”。

2

我会和Tomalak的回答一起去的。

您可能需要暂时把你的目标数据库到大容量日志恢复模式下执行之前,“选择进入”停止日志文件的爆炸......

1

如果它是SQL Server 7或2000看看数据转换服务(DTS)。对于SQL 2005和2008,请查看SQL Server Integration Services(SSIS)

1

绝对将目标数据库放入批量记录模式。这将最低限度地记录操作并加快速度。