2013-01-22 66 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

相關問題