如何根据日期自动更新数据库?

时间:2012-07-11 01:59:26

标签: sql-server

如何根据日期自动更新数据库?

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。很抱歉没有说明。

3 个答案:

答案 0 :(得分:1)

我认为表格没有办法自行更新。您应该考虑在SQL Server中安排作业。

请参阅此MSDN文章here

作业将每天运行并考虑每一行并在适当的时候更新状态。

答案 1 :(得分:1)

您可以做的最好的事情是创建存储过程,根据您的日期时间更新您的表上的记录,然后创建SQL服务器作业,然后在您执行它的所需时间安排它。

答案 2 :(得分:1)

我会创建一个SP,为所有拥有EndDate > GETDATE()的邮件设置状态为“Expired”,并使用Sql Server中的作业安排它:

CREATE PROCEDURE UpdateMessages
AS

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

GO