2012-07-11 82 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