我正在构建一个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
答案 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作业,计划在指定时间运行。