Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否在SQL Server中自动删除一段时间后的记录?_Sql_Sql Server_Sql Delete - Fatal编程技术网

是否在SQL Server中自动删除一段时间后的记录?

是否在SQL Server中自动删除一段时间后的记录?,sql,sql-server,sql-delete,Sql,Sql Server,Sql Delete,我有一个表,它有两个属性:创建记录时的ID和Datetime 我如何触发(程序?)在(比如)1天后删除记录 我想要一个每X次执行一次的任务,而不是手动执行。删除一天以上记录的语句是: DELETE FROM tableName WHERE DATEDIFF(day, getdate(), dateColumn) < -1 DELETE FROM tableName WHERE DATEDIFF(day,getdate(),dateColumn)

我有一个表,它有两个属性:创建记录时的ID和Datetime

我如何触发(程序?)在(比如)1天后删除记录


我想要一个每X次执行一次的任务,而不是手动执行。

删除一天以上记录的语句是:

DELETE FROM tableName WHERE DATEDIFF(day, getdate(), dateColumn) < -1
DELETE FROM tableName WHERE DATEDIFF(day,getdate(),dateColumn)<-1
您需要使用任何可用的语言(例如php)对该语句进行cron


也就是说,当然很难想象一个场景,您首先要删除记录;)

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

请关注下一个主题:-


我建议您使用SQL Server代理并编写一个存储过程,删除一天内经过的每一行

您可以在此找到如何使用Sql server代理作业

存储过程如下所示:

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

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

谢谢!你能简单解释一下-1部分吗?此外,是否有可能使其每天自动执行?我听过一个叫做SQL作业的东西,但我不确定。关于这个场景,是关于忘记通过电子邮件发送的密码链接-链接应该在一段时间后过期-负1相当于“一天以前”(因此昨天):)这些存储过程的家伙听起来很酷,所以这可能就是你要找的:)我要投我不明白的那个,因为它可能是对的!HahaTrigger与事件类似,当某个操作发生(即插入、更新、删除)时会触发。你所说的是一项计划任务。通常在sql server中,您会创建一个过程来删除所需的行。然后创建一个sql作业,按照给定的计划运行,以执行该过程。不客气。我建议您多读一些关于sql作业的文章,这样您就可以以您想要的最佳方式使用它。