2014-02-11 31 views
1

我有一个SQL查询(如下图所示),我需要定期运行:WebMatrix的 - 定期运行SQL查询

db.execute("UPDATE property_info SET IsActive=false WHERE ExpiryDate > @0", CurrentDate); 

该查询基本上是用来检查所有属性,并查看是否或者他们已经过了他们的失效日期。如果是,那么它会自动将该属性设置为不活动。由于“CurrentDate”是一个滚动窗口,我想要自动重新运行此查询,可能每天都在运行。

这是我应该使用存储过程的东西?

没有任何用户交互的最佳途径的任何建议?

+0

对不起,只是补充一点,我使用SQL服务器快递(由于预算不幸),所以SQL代理作业是不可能的。 – Gavin5511

回答

1

实现此目的的一种简单方法是将代码行添加到项目根目录中的_PageStart.cshtml。每次执行网站上的任何页面时,都会执行此操作。这可能是过分夸大的东西,从外表来看,只需要每天检查一次。为了缓解这种情况,您可以在Application集合中使用简单的DateTime戳记,以确保它每天最多只能运行一次(或根据需要调整时间间隔)。这绝不是完全预定代码执行的解决方案,但它可以很好地满足您的目的(和您的预算)。

+0

如果没有应用程序集合中的DateTime标记,我认为这可能有点矫枉过正:p但是有了它,它肯定会成为暂时的解决方案。我最终将升级到SQL标准,然后使用SQL Server代理运行此操作。我会让你知道我如何继续使用应用程序集合,因为这对我来说是全新的领域:) – Gavin5511

+0

它与'Session'集合的工作方式相同,只是存储在其中的值在整个服务器应用程序之间共享而不是每个用户。和'Session'对象一样,通常建议尽可能少的使用它。 – Polynomial