触发定期删除数据

时间:2017-04-19 09:23:14

标签: sql sql-server triggers

我想让触发器在给定时间内(例如每天上午10点)删除给定表格中的某些行。我该如何实现呢?

1 个答案:

答案 0 :(得分:6)

完整SQL Server

您可以在存储过程中设置代码,而不是触发器,并定义每天上午10点调用该sp的预定作业。

您创建作业:

https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job

它的命令必须是对你的清洁sp的调用,例如:

exec (your stored proc name) (and possibly add parameters)

你计划每天召唤一次:

https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job

SQL Server Express

由于您拥有SQL Server Express并且无法使用SQL Server代理,因此您可以使用Windows自身的任务调度程序每天拨打一次清洁代码。

使用删除命令创建脚本文件 cleaning.sql ,并创建批处理文件 cleaning.bat 以执行它。批处理文件的示例:

sqlcmd -i cleaning.sql

将这两个文件放在同一个文件夹中,并将任务计划程序设置为每天上午10点执行该批处理。