2013-01-22 69 views
2

继承人我想要做的事: 我正在使用一个数据库,为了简单起见,我将它命名为“d1”。我只需要从这个数据库查询两个表。我只需要隔离来自该数据库的最后几年数据(这是唯一与我想要做的事情相关的信息 - 2012年审计报告:/)。请记住,我正在使用的数据库有一个简单的表格,其中至少有6或7年的数据。将表移动到新的数据库在SQL服务器

可能的解决方案:s: 1.将数据库复制到新数据库中,删除除2012数据以外的所有数据。 2.复制两个表并将它们放入新数据库,删除除2012数据以外的所有行。

I.T.在我之前创建了一个数据库,并能够创建审计报告。然而,我从来没有做过这种类型的任务。任何帮助将非常感激,我将直到美国东部时间下午4点看这个问题。希望我的要求具体,但如果没有,我会在这里等着回复你:)。谢谢!

+0

将视图限制为仅2012年的数据不起作用吗?您是否必须将其移动到其他服务器上,而不是使用它当前所在的服务器上的视图进行查询? –

+0

数据库的大小是多少? (在mdf,ndf和ldf的Mo/Go中) – tschmit007

+0

那么我有一个查询将审计报告放在一起。但是我不能在当前数据库上运行它,因为它里面有2013年的数据。 I.T.之前的人告诉我,要做到这一点的方法是创建一个新的数据库,并将数据扔到你想要的年份(例如2012年数据库中的2012年数据) – user2001006

回答

1

我不完全知识丰富的可用于SQL Server中的实用工具,但基于否则可用的实用程序,

  1. 查找转储工具将数据导出在桌子上。 通常这样的导出实用程序将允许指定表名称, ,并且通常会采用哪些条件。 导出将在SQL中,并可用于填充新的数据库。
  2. 在与源数据库相同的服务器上创建新数据库。 执行跨数据库更新。 因此,创建一个数据库db2012。 使用数据库db2012,运行以下更新语句:

update table1 
(select * from d1.table1 where year(timestamp_x) = 2012) 
1

最简单的做法是:

select t.* 
into newdb..t 
from olddb..t 
where <from the last two years> 

对于每个表。这将获得数据。

如果您需要其他东西(索引,约束等),则编写表定义,在新数据库中重新创建它们,并从现有表中插入数据。

+0

我假设t =表? – user2001006

+0

是的。 “t”将用于一张桌子。你将不得不为两个表运行两次。 –

+0

和“哪里<最近两年>”?它真的会从WHERE子句中检索最后两年吗?我以前从未见过。 – user2001006

相关问题