如何在计时器到期时更新数据库一次?

时间:2015-06-09 21:47:41

标签: c# asp.net .net sql-server sql-server-2012

我使用的是ASP.NET网络表单,其中有两个字段Start_dateEnd_date

我希望在时间超过End_date(即截止日期已过期)时更新SQLServer中的特定字段。

e.g。如果End_date在06/09/2015,那么SQLServer字段应在2015年10月6日上午12点01分更新为Expired

我是ASP.NET新手,如果您有任何想法,请告诉我。谢谢

2 个答案:

答案 0 :(得分:2)

有很多方法可以做这样的事情。即:

  • 制作一个执行该操作的SQL脚本,并将该脚本添加为SqlServer中的预定作业
  • 或者,创建一个每小时或每六小时睡眠和唤醒并检查过期记录的WindowsService
  • 或者,在您的ASP应用程序中添加像Hangfire这样的模块并在那里添加这样的计划任务
  • ..

这三种可能是最常用的。

无论如何,它总是关于一些调度程序和一些周期性的工作。想想如何写一个" run"的工作(找到过期,标记/删除它们),然后阅读您可以使用的调度程序,然后将它粘合在一起并配置调度程序并完成。

答案 1 :(得分:0)

有几种方法可以做到这一点,但如果您只需要在给定时间更改数据库,那么我建议您使用SQL Server Agent。您可以将其设置为仅运行一次或定期运行,并且可以将其设置为运行存储过程,也可以直接提供SQL命令。