将数据从一个表移动到同一个数据库中的另一个表

时间:2013-12-11 15:14:52

标签: c# sql sql-server

我之前已经意识到这个问题,但我读过的内容并没有真正回答我的问题。

我有一个包含数百万行数据的表,每天在多个查询中使用。我想将大部分数据移动到具有相同模式的另一个表。第二个表格是"存档"表。

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

  • 该表具有ID作为主键
  • 该表还有一些外键约束

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

我认为这是针对SQL Server的。在这种情况下,partitioned tables可能是另一种选择。否则我总是在SQL Server中找一个INSERT ... SELECT个作业,或者 - 如果你不能直接在SQL Server中运行它 - 创建一个存储过程并通过你安排的一个小C#工具运行它

答案 1 :(得分:0)

尝试执行类似

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

您可以使用大多数数据库引擎上的一条指令创建包含数据副本的新表。

对于SQL Server 2008

,请使用此选项
Select * into new_table  from  old_table 

答案 2 :(得分:0)

如果您具有设置的数据存档时间间隔,则可以利用以下文章中描述的分区到存档解决方案。

http://blogs.msdn.com/b/felixmar/archive/2011/02/14/partitioning-amp-archiving-tables-in-sql-server-part-1-the-basics.aspx

我们的团队过去利用类似的分区/归档解决方案取得了很大的成功。

此致