【发布时间】:2017-04-19 09:23:13
【问题描述】:
我想让触发器在给定时间(例如每天上午 10 点)到来时删除给定表中的某些行。我该如何实现?
【问题讨论】:
标签: sql sql-server triggers
我想让触发器在给定时间(例如每天上午 10 点)到来时删除给定表中的某些行。我该如何实现?
【问题讨论】:
标签: sql sql-server triggers
完整的 SQL Server
您可以在存储过程中设置代码,而不是触发器,并定义一个计划作业以在每天上午 10 点调用该 sp。
你创造了工作:
https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job
它的命令必须是对您的清洁服务提供商的调用,例如:
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 点执行该批处理。
【讨论】: