我正在寻找一种定期(例如每周)在数据库中运行一些SQL语句以删除旧数据的方法。就我所见,有(至少)两种方法可以实现这一点:
- 使用“维护计划”和“执行T-SQL语句任务”
- 使用“SQL Server Agent作业”,并在该作业的“步骤”中指定语句
这并不是一个非此即彼的选择;有一些重叠。
将维护计划视为执行“某些操作”到您的数据库的步骤集合;这些步骤被封装到需要安排运行的计划中。
SQL Server代理是定期运行作业的服务;作业是任何按计划运行的任务。维护计划也是一个作业。
当您安排维护计划运行时,您实际上正在为SQL Server代理创建一个或多个作业来定期运行。
现在,关于选择哪种方式最好(是通过维护计划向导还是直接通过代理),我会说对于大多数数据库,维护计划向导已足够。您可以根据环境需求为维护计划创建的作业添加其他步骤。
这样讲清楚了吗?