2013-07-24 66 views
3

在我的SQL數據庫中,我有一個包含特定數據的視圖,用於報告內容。爲了歸檔目的,我想自動將該視圖保存爲表格。我創建了一個表自動將視圖保存爲帶有額外列的表格

SELECT * INTO t_ReportArchive FROM v_View 
(Table = t_ReportArchive; View = v_View) 

所以表很好。視圖和表格的列在任何時候都不會改變,只是數據正在更新。我對SQL非常陌生,我的問題是:是否可以運行腳本或者使用該視圖中的新數據自動更新表?像Update t_ReportArchive from v_View

+1

當您說「自動」時,您是否希望將其設置在計時器上以每天,每小時更新一次?在這種情況下,您應該研究創建存儲過程和作業。 – tkendrick20

+0

創建一個存儲的過程並將其設置爲服務器作業 –

回答

0

好,你正在使用的查詢創建表,並插入到表中,所以它只能是使用一次。你可以在第一時間手動運行創建表饃隨後你可以使用一個簡單的插入,如:

insert into t_ReportArchive select * FROM v_View 

另外,您可以創建一個新表,每一天,備份運行,並有日期附加到表如下:

declare @backupquery varchar(100) = 'select * into t_ReportArchive'+ REPLACE(CAST(CAST(CURRENT_TIMESTAMP AS DATE) AS VARCHAR(10)),'-','_')+ ' from v_View' 
exec (@backupquery) 
0

當您從表中插入/更新/刪除並從那裏運行SQL時,可以使用觸發器運行。

http://msdn.microsoft.com/en-us/library/ms189799.aspx

我個人不喜歡觸發器,因爲它很難保持跋涉上發生了什麼。預定工作也是如此。

我更喜歡每當發生更改時從代碼中調用更新。

相關問題