使用大表发布脚本

时间:2013-10-14 16:24:13

标签: sql sql-server

我正在尝试在SQL中备份特定的表,但是在发布包含数据的脚本时,脚本太大了。它已经运行了一个多小时,脚本大小已超过1TB。即使执行这么大的脚本也是不可能的。

我在SQL中重新创建了这些表的备份,但它只是太大而且我的数据库目录上没有足够的空间。

有没有人对如何备份这些表有任何建议?

Table 1 : 56,370,203 records
Table 2 : 35,528,469 records
Table 3 :  7,965,568 records

提前谢谢。

2 个答案:

答案 0 :(得分:0)

为什么不创建另一个数据库,将您感兴趣的数据复制到该数据库中(我想这取决于行大小这是多么可行)

将数据复制到另一个数据库后,您可以自行备份数据。至少那时你不需要对整个数据库进行完整备份!

完成后,您可以清空复制数据库并释放一些服务器空间。

或者,让自己成为一个非常大的动力......

答案 1 :(得分:0)

所以,如果您只想保留某些表的状态然后稍后恢复它,那就是我要做的:

1)制作另一个数据库[TableBackup]。

2)要备份表格,请为每个表格执行此操作:

USE [TableBackup]
GO
IF OBJECT_ID('<<yourTable>>') IS NOT NULL  DROP <<yourTable>>;
SELECT * INTO <<yourTable>> FROM <<yourDB>>.dbo.<<yourTable>>;
GO

3)要恢复表,请对每个表执行此操作:

USE [<<yourDB>>]
GO
TRUNCATE <<yourTable>>;
INSERT INTO <<yourTable>> FROM [TableBackup].dbo.<<yourTable>>;
GO

未测试。您可能必须对表中的外键和/或标识列进行调整。