触发定期删除数据

igo*_*upa 3 sql sql-server triggers

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

Mar*_*lot 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)
Run Code Online (Sandbox Code Playgroud)

并安排它每天调用一次:

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

SQL Server Express

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

使用delete命令创建一个脚本文件cleaning.sql,并创建一个批处理文件cleaning.bat来执行它.批处理文件的示例:

sqlcmd -i cleaning.sql
Run Code Online (Sandbox Code Playgroud)

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