2012-07-11 90 views
2

如何根據日期自動更新數據庫?如何根據日期自動更新數據庫?

Message ID | Message | StartDate | EndDate | Status 
    1  | Hello | 07/7/2012 | 08/7/2012 | Expired 
    2  |  Hi  | 10/7/2012 | 12/7/2012 | Ongoing 
    3  | Hi World | 11/7/2012 | 18/7/2012 | Pending 

如何根據當天日期自動更新狀態?

更多信息:我正在使用SQL-Server Management Studio。對不起,沒有說明。

+2

技術問題:嗯? – 2012-07-11 02:01:38

+0

那麼,這通常是非常簡單的,但沒有足夠的信息來回答你。我們需要知道您使用的數據模型的ORM /機制,您使用的是哪種數據庫引擎,並且這是最低限度的。 – 2012-07-11 02:01:44

+0

@GlennFerrieLive沒有開玩笑! +1 ... :) – 2012-07-11 02:01:55

回答

1

我不認爲有一種方法可以讓表格自行更新。您應該考慮在SQL Server中安排作業。

看到這個MSDN文章here

作業每天將運行,並考慮每一行和更新狀態在適當情況下。

1

您可以做的最好的事情是創建存儲過程,根據日期時間更新表上的記錄並創建SQL服務器作業,然後根據您希望執行的時間安排它。

1

我會創建一個SP,設置爲「過期」對於具有EndDate > GETDATE()和SQL Server使用作業調度它的所有消息的狀態:

CREATE PROCEDURE UpdateMessages 
AS 

UPDATE Messages SET Status = 'Expired' WHERE EndDate > GETDATE() 

GO