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

4

3 回答 3

1

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

在此处查看此 MSDN 文章

该作业将每天运行并考虑每一行并在适当的情况下更新状态。

于 2012-07-11T02:11:00.220 回答
1

您可以做的最好的事情是创建存储过程,根据您的日期时间更新表上的记录并创建 SQL Server 作业,然后将其安排在您想要的时间执行它。

于 2012-07-11T02:11:43.810 回答
1

我将创建一个 SP,将所有消息的状态设置为“已过期”,EndDate > GETDATE()并使用 Sql Server 中的作业对其进行调度:

CREATE PROCEDURE UpdateMessages
AS

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

GO
于 2012-07-11T02:13:49.827 回答