插入后24小时删除记录

时间:2012-12-22 23:52:13

标签: sql sql-server tsql

有没有办法在Transact-SQL中创建后24小时自动删除行?

我正在创建一个网站(学习体验),用户需要在注册后点击通过电子邮件发送的验证链接。我希望用户在24小时内验证自己。

我认为我需要的是一个触发器,但我真的不确定语法,也不确定它是否可行。

2 个答案:

答案 0 :(得分:17)

我不确定你的架构,但我会采用不同的方式。我会有一个与验证链接对应的数据库记录的日期/时间。单击链接时,请验证数据库记录的日期和时间是否在当前时间的24小时内。如果是这样,请允许,否则拒绝它。

答案 1 :(得分:2)

问:有没有办法在Transact-SQL中创建后24小时自动删除行?

答:好的。编写“sqlcmd”脚本,将其包装在.bat文件中,然后从Windows计划任务中调用它:

或者,根据您的版本,您可以从SQL Server代理安排相同的SQL脚本:

对事物采取不同的方式:

  • 当用户点击您的链接时,您可以检查当前时间(相对于MSSQL)是否>> 24小时。如果是这样,您将回复“太晚”消息(而不是验证条目)。

在任何情况下 - 你绝对,完全,完全, NOT 想要使用触发器!