我在我的sql数据库中设置了临时用户帐户,其中存储了我的网站用户的用户名,密码和添加日期。
我最初打算以编程方式删除这些记录,但现在我想知道sql server 2008是否有内置函数,允许记录在一天后自动删除。
这将解决用户在临时帐户关闭后能够保持登录系统的问题
感谢
答案 0 :(得分:12)
您可以创建SQL Job
每天运行并执行指定的存储过程。
答案 1 :(得分:4)
您可以让您的程序执行此操作,或设置sql agent job。
答案 2 :(得分:3)
您可以在不实际删除记录的情况下获得所需内容。您可以在表中添加计算列以说明记录是否有效。
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;
答案 3 :(得分:1)
创建一个存储过程来执行此操作,然后按说明here计划运行SPROC。
DELETE FROM myTable
WHERE timeStamp < DATEADD(Day, DATEDIFF(Day, 0, GetDate())-1, 0)