如何在一定时间后自动删除sql server中的记录

我在我的sql数据库上设置了临时用户帐户,其中存储了我的网站用户的用户名,密码和添加日期。

我最初打算以编程方式删除这些记录,但现在我想知道sql server 2008是否有内置函数,允许记录在一天之后自动删除。

这将解决用户在临时帐户关闭后能够保持登录系统的问题

谢谢

您可以创建SQL Job以每天运行并执行指定的存储过程。

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

您可以让您的程序执行此操作,或设置sql代理程序作业 。

您可以在不实际删除记录的情况下获得所需内容。 您可以在表中添加计算列以说明记录是否有效。

  IsValid as (case when getdate() - CreatedAt > 1 then 0 else 1 end) 

您也可以对记录中的关键字段执行此操作,因此您无法找到它们:

 _name varchar(255), name as (case when getdate() - CreatedAt < 1 then _name end) 

然后,您可以使用视图来访问该表:

 create vw_Logins as select name, . . . from t where isValid = 1; 

然后,在闲暇时,如果出于性能原因,您可以实际删除行。

编辑:

如果将视图短语为:您实际上不需要计算列:

 create vw_Logins as select name, . . . from t where getdate() - CreatedAt < 1; 

创建一个存储过程来执行此操作,然后按照此处的说明安排SPROC运行。

 DELETE FROM myTable WHERE timeStamp < DATEADD(Day, DATEDIFF(Day, 0, GetDate())-1, 0)