触发及时事件的最佳方式

时间:2010-11-17 16:33:11

标签: c# asp.net sql-server

我正在构建一个ASP.Net网站,我有一个db表,我想在其中重置所有行的列。列类型:byte

我想每天午夜以自动方式这样做。我知道我可以在SQL Server Management Studio中设置一份工作,但我想以编程方式完成这项工作,而我的网站将成为它的触发器。

我正在使用C#.Net 2008和MS SQL Server 2005

即。 (伪代码)

if(new_day)// can we be accurate that time here will be around 12:00:05 at maximum?
    // call sql stored procedure to reset that column

4 个答案:

答案 0 :(得分:2)

您可以在C#中创建一个可以在后台运行的简单Windows服务,但考虑到您要做的就是进行数据库更新,最好将其保存在数据库中....我建议您按计划进行SQL中的工作

答案 1 :(得分:1)

如果您真的想:创建一个Scheduled Task,每天午夜都会调用您的网站。网站本身不能触发自己,但任务可以做到这一点。

但实际上:只需设置一个SQL作业。

答案 2 :(得分:1)

您的网站仅在请求页面时执行,使其无法充当定期执行任务的服务。最好的解决方案是使用SQL Server直接使用SQL Server来安排任务,创建自己的服务或使用Windows任务计划程序定期执行应用程序。

但是,如果您处于托管环境中,则可能无法执行此操作。在这种情况下,您可以使用缓存来模拟服务。 Omar Al Zabir有一篇关于CodeProject的文章,解释了如何做到这一点:Simulate a Windows Service using ASP.NET to run scheduled jobs

答案 3 :(得分:0)

SQL Agent作业,计划在指定时间运行。