根据时间更新数据库中的属性值

时间:2017-09-13 13:35:04

标签: sql-server asp.net-mvc entity-framework

我正在使用ASP.net MVC5和Entity Framework 是否有任何方法或脚本允许在我的数据库中每天自动更新列(可能会更改)

2 个答案:

答案 0 :(得分:1)

我已经提出了一些我认为你需要遵循的步骤,因为你说你需要执行一些脚本。

  1. 通过右键单击SQL Server代理中的jobs文件夹来创建新作业。

    Create New Job

  2. 在常规页面中输入作业的名称。

    enter image description here

  3. 切换到步骤页面,然后点击新建...

    enter image description here

  4. 输入步骤的名称,选择运行作业所需的数据库,然后在命令框中编写脚本。

    enter image description here

  5. 接下来切换到“计划页面”并创建新计划。

    enter image description here

  6. 在“计划”对话框中,配置脚本应运行的频率。

    enter image description here

  7. 保存工作。 enter image description here

  8. 您可以通过右键单击作业并选择public class SampleDBContext : DbContext { public IDbSet<Customer> Customers{ get; set; } } 来测试您的工作 enter image description here

答案 1 :(得分:0)

是的,你有几个选择

1 Windows服务应用,这基本上与任何其他服务一样隐藏,您可以在此处查看指南https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer

2创建一个控制台应用程序并将其放入操作系统的任务调度程序这更简单,因为您在Windows中配置了一个句点,并且可以随时更改它并且不需要重新编译你的应用。在这里,您可以看到指南https://technet.microsoft.com/en-us/library/cc721931(v=ws.11).aspx

3创建SQL作业如果要以DB Admin的身份执行此操作,可以在SQL中创建作业,这也将定期运行脚本,如何在sql中创建作业https://technet.microsoft.com/en-us/library/ms190268(v=sql.110).aspx#TsqlProcedure

EXEC dbo.sp_add_job
    @job_name = N'Update Clients' ;
GO
EXEC sp_add_jobstep
    @job_name = N'Update Clients',
    @step_name = N'Update IDs',
    @subsystem = N'TSQL',
    @command = N'UPDATE CLIENTS SET...', 
    @retry_attempts = 5,
    @retry_interval = 5 ;
GO
EXEC dbo.sp_add_schedule
    @schedule_name = N'RunDaily',
    @freq_type = 1,
    @active_start_time = 233000 ;
USE YOURDB ;
GO
EXEC sp_attach_schedule
   @job_name = N'Update Clients',
   @schedule_name = N'RunDaily';
GO
EXEC dbo.sp_add_jobserver
    @job_name = N'Update Clients';
GO

4您可以创建PowerShell脚本这是一个示例http://www.sqlservercentral.com/blogs/nycnet/2013/05/24/performing-an-insert-from-a-powershell-script/并将其放在Windows任务计划程序中。