我有一个SQL查询(如下所示),我需要定期运行:
db.execute("UPDATE property_info SET IsActive=false WHERE ExpiryDate > @0", CurrentDate);
此查询基本上用于检查所有属性,并查看它们是否已超过其过期日期。如果是,则会自动将该属性设置为“非活动”。因为“CurrentDate”是一个滚动窗口,我想自动重新运行这个查询,可能每天。
这是我应该使用存储过程吗?
有关在没有任何用户互动的情况下实现此目标的最佳方法的任何建议?
答案 0 :(得分:1)
实现此目的的一种简单方法是将代码行添加到项目根目录中的_PageStart.cshtml
。这将使它在每次执行网站上的任何页面时执行。对于那些从外观上看,每天只需要检查一次的东西,这可能是一种过度杀伤力。为了缓解这种情况,您可以在DateTime
集合中使用简单的Application
标记,以确保它每天最多只运行一次(或根据您的需要调整间隔)。这绝不是完全预定的代码执行的解决方案,但它可能很好地满足您的目的(和您的预算)。