我在我的 sql 数据库上设置了临时用户帐户,其中存储了我的网站用户的用户名、密码和添加日期。
我最初打算以编程方式删除这些记录,但现在我想知道 sql server 2008 是否有一个内置功能,允许在某一天之后自动删除记录。
这将解决用户在他们的临时帐户关闭后能够保持登录到系统的问题
谢谢
我在我的 sql 数据库上设置了临时用户帐户,其中存储了我的网站用户的用户名、密码和添加日期。
我最初打算以编程方式删除这些记录,但现在我想知道 sql server 2008 是否有一个内置功能,允许在某一天之后自动删除记录。
这将解决用户在他们的临时帐户关闭后能够保持登录到系统的问题
谢谢
您可以创建一个SQL Job
每天运行并执行指定的存储过程。
你可以让你的程序来做,或者设置一个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)