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

时间:2010-10-01 14:58:54

标签: sql sql-server sql-server-2005 scheduled-tasks

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

我正在使用SQL Server 2005

2 个答案:

答案 0 :(得分:15)

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

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

DELETE YourTable WHERE YourDate<GETDATE()-7

或不考虑时间使用:

DELETE YourTable WHERE YourDate<DATEADD(day,DATEDIFF(day,0,GETDATE()-7),0)

在“日程表”中,您可以让它在每个星期天或任何您需要的地方运行。

答案 1 :(得分:3)

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

DELETE FROM MyTable
WHERE DateCreated <= dateadd(d, -7, getdate())

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

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