SQL Server:自动删除一段时间后的记录?

时间:2017-04-07 18:43:16

标签: sql-server

我有一个有两个属性的表:ID&创建该记录的日期时间。如何在1天之后触发(程序?)删除记录?

编辑:在标题中添加了'自动',这意味着我想要一个每X时间执行一次的任务,而不是手动执行它。

3 个答案:

答案 0 :(得分:2)

我建议您使用SQL Server代理并编写一个存储过程,删除日期传递的每一行。

您可以在此处找到如何使用Sql server agent作业:

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

和存储过程如:

CREATE  PROCEDURE DeleteRows()
AS
BEGIN
DELETE FROM mytable
WHERE (DATEDIFF(DAY,  DATEADD(day, -1, DateColum), GETDATE())) >= 1
END

编辑: where语句中的数字1是天。您可以将其更改为您想要使用的内容。

答案 1 :(得分:0)

删除超过一天的记录的声明是:

DELETE FROM tableName WHERE DATEDIFF(day, getdate(), dateColumn) < -1

您需要使用您可用的任何语言来表达该语句,例如php。

那说当然很难想象你想要首先删除记录的场景;)

答案 2 :(得分:0)

您可以创建一个SQL作业,在一天之后运行(或根据需要每天运行。)并执行带有简单删除语句的指定存储过程。

按照下一个主题: -

http://technet.microsoft.com/en-us/library/ms190268.aspx

相关问题