是否有辦法限制SQL Server 2000數據庫中的行數,以便在新行進入時刪除舊行?SQL Server 2000:限制行數
我有一些數據我想保留大約30天 - 之後,我不在乎數據是否存在或被刪除 - 只要表格不會變得很大。
任何其他建議或歡迎 - 我對數據庫編程體面,但我絕不是DBA。
謝謝。
是否有辦法限制SQL Server 2000數據庫中的行數,以便在新行進入時刪除舊行?SQL Server 2000:限制行數
我有一些數據我想保留大約30天 - 之後,我不在乎數據是否存在或被刪除 - 只要表格不會變得很大。
任何其他建議或歡迎 - 我對數據庫編程體面,但我絕不是DBA。
謝謝。
不明確,沒有。但是,您可以在INSERT
上設置一個TRIGGER
,以便數據庫刪除超過30天的任何行(因此,您只是在添加更多內容時刪除行,而不僅僅是爲了它)。或者,你可以使用SQL Server代理併成立了一個存儲過程來完成一個
delete from table where insertdate <= dateadd(d, -30, getdate())
執行此操作的典型方法是創建一個存儲過程或一大塊T-SQL代碼,刪除舊條目,並使該T-SQL塊每天晚上或每週運行或任何您需要的內容。
沒有系統內置的方法來限制行數,並讓SQL Server自動拋出最舊的行。
MArc
嗨marc_s,感謝您的建議。這聽起來像一個好主意。你將如何安排查詢?這是什麼「工作」?就像我說的,除了簡單的sql之外,我對大多數數據庫概念一無所知。再次感謝。 – Charles 2009-06-26 20:33:54
@Charles:您可以在SQL Server代理中創建一個作業,然後您可以計劃。這是他(和我)提到的關於調度查詢的內容。 – Eric 2009-06-26 21:11:54