2009-06-26 129 views
2

是否有辦法限制SQL Server 2000數據庫中的行數,以便在新行進入時刪除舊行?SQL Server 2000:限制行數

我有一些數據我想保留大約30天 - 之後,我不在乎數據是否存在或被刪除 - 只要表格不會變得很大。

任何其他建議或歡迎 - 我對數據庫編程體面,但我絕不是DBA。

謝謝。

回答

5

不明確,沒有。但是,您可以在INSERT上設置一個TRIGGER,以便數據庫刪除超過30天的任何行(因此,您只是在添加更多內容時刪除行,而不僅僅是爲了它)。或者,你可以使用SQL Server代理併成立了一個存儲過程來完成一個

delete from table where insertdate <= dateadd(d, -30, getdate())

3

執行此操作的典型方法是創建一個存儲過程或一大塊T-SQL代碼,刪除舊條目,並使該T-SQL塊每天晚上或每週運行或任何您需要的內容。

沒有系統內置的方法來限制行數,並讓SQL Server自動拋出最舊的行。

MArc

+0

嗨marc_s,感謝您的建議。這聽起來像一個好主意。你將如何安排查詢?這是什麼「工作」?就像我說的,除了簡單的sql之外,我對大多數數據庫概念一無所知。再次感謝。 – Charles 2009-06-26 20:33:54

+0

@Charles:您可以在SQL Server代理中創建一個作業,然後您可以計劃。這是他(和我)提到的關於調度查詢的內容。 – Eric 2009-06-26 21:11:54