每日SQL任务从表中删除内容

Ste*_*ieB 13 sql sql-server sql-server-2005 scheduled-tasks

嘿,我想知道如何在特定的表上设置一个清理任务来删除可以说一周的内容.

我正在使用SQL Server 2005

KM.*_*KM. 16

在SQL Server Management Studio中,展开SQL Server代理,右键单击"作业"并选择"新作业..."

在"Steps"中,创建一个"New ..."并输入:

DELETE YourTable WHERE YourDate<GETDATE()-7
Run Code Online (Sandbox Code Playgroud)

或不考虑时间使用:

DELETE YourTable WHERE YourDate<DATEADD(day,DATEDIFF(day,0,GETDATE()-7),0)
Run Code Online (Sandbox Code Playgroud)

在"时间表"中,您可以让它在每个星期天或任何您需要的地方运行.


Lit*_*les 6

您可以创建一个删除一周前所有内容的作业。例如,

DELETE FROM MyTable
WHERE DateCreated <= dateadd(d, -7, getdate())
Run Code Online (Sandbox Code Playgroud)

但是,这假设您有某种方法可以跟踪记录在表中的年龄,并且还假设没有外键约束。

然后,您可以安排作业在用户未连接时运行。