在Sql Server 2005中将数据从一个表移动到另一个表

时间:2014-03-06 15:09:59

标签: sql sql-server database sql-server-2005 data-transfer

我在SQL Server 2005中将一千万个数据从一个表移动到另一个表。数据传输的目的是使旧数据脱机。

一段时间后,它会抛出一个error Description: "The LOG FILE FOR DATABASE 'tempdb' IS FULL."

我的tempdbtemplog放置在驱动器(C驱动器除外)之间,该驱动器的可用空间大约为200 GB。此外,我在数据库中的tempdb大小设置为25 GB

根据我的理解,我必须将tempdb的大小从25 GB增加到50 GB,并将日志文件自动增长部分设置为“unrestricted file growth (MB)”。< / p>

请让我知道其他因素,因为我正在使用生产数据库,所以我无法进行多少实验。所以,如果他们的更改会产生一些其他影响,请告诉我。

先谢谢。

3 个答案:

答案 0 :(得分:1)

我的猜测是你试图在一个批次中移动所有数据;你可以将它分解成更小的批次,并在插入时减少行数吗?此外,如注释中所述,您可以将目标数据库设置为SIMPLE或BULK-INSERT模式。

答案 1 :(得分:1)

你知道解决方案。似乎您只是移动部分数据以加快查询速度。

我同意你的解决方案

根据我的理解,我必须将tempdb的大小从25 GB增加到50 GB,并将日志文件自动增长部分设置为&#34;不受限制的文件增长(MB)&#34;。

继续

答案 2 :(得分:0)

你为什么要使用日志文件?复制数据(数据和日志文件),然后在SIMPLE上设置模式并再次运行传输。