小编elw*_*wyn的帖子

当一个项目的 ExpiryDate 值是过去的时候,如何将它标记为“已过期”?

我有一个项目表,每个项目都有一个状态和到期日。

强制执行此操作的最佳方法是什么:

when ExpireyDate > DateTime.Now
update Status to "expired"
Run Code Online (Sandbox Code Playgroud)

我可以有一个定期运行的存储过程,它根据需要检查所有项目和更新。但是,我想避免项目过期的任何延迟,并被标记为过期。

有没有更好的方法来做到这一点?数据库中的某种约束?

例如,拍卖网站将如何做到这一点?在非常精确的时间“结束”拍卖很重要。

编辑

我将gbn的答案标记为解决方案,因为它为我的问题提供了解决方案。但是我认为user212102是问题的关键 - 为什么我要存储状态,而不是根据项目的状态来计算它?我将研究实现这一目标的更好方法。

sql-server-2008 sql-server constraint best-practices

4
推荐指数
1
解决办法
5167
查看次数