2013-12-11 36 views
0

我意识到这个问题之前已经被问过,但是我读过的东西都没有真正回答我的问题。在同一个数据库中将数据从一个表移动到另一个表

我有一张表,每天有数百万行数据用于多个查询。我想将大部分数据移动到具有相同模式的另一个表中。第二个表格将成为“存档”表格。

我想要一个存档数据的选项列表,所以我可以把它们呈现给我的老板。到目前为止,我正在考虑在C#控制台应用程序中插入select语句,SQLBulkCopy,并且我开始深入SSIS以了解它可以做什么。我打算在周末或多个周末做这个。

  • 表有一个ID作为主键
  • 表也有一些外键约束

感谢您的帮助。

+0

您提到了外键约束。是否期望您最终必须从原始表中删除归档数据? – Ellesedil

+0

是的,我将在新表格中删除原始表格中的数据。但我仍然需要访问存档数据。 – grath

回答

0

我假设这是针对SQL Server的。在这种情况下,partitioned tables可能是一个附加选项。否则,我会一直使用由SQL Server中的作业运行的INSERT ... SELECT,或者 - 如果无法直接在SQL Server中运行它,请创建一个存储过程并通过您计划的一个小型C#工具运行它。

+0

是的,我正在使用SQL Server 2012.我会查看分区表。谢谢 – grath

0

尝试执行像

CREATE TABLE mynewtable as select * from myoldtable where any_filter..; 

东西,你可以创建新表的数据用一条指令复制大多数的数据库引擎。

利用这一点,在SQL Server 2008

Select * into new_table from old_table 
+0

第一个只是一个镜头,对吗?它会创建一个快照。如果他不想每次都创建一个新表,那么第二个会更好。 –

+0

对,它将是数据的副本。 – Shooorf

+0

如果我在select语句中插入了一条数据,那么它会更好地完成批量数据,而不是一次尝试所有数据? – grath

相关问题