我在我的 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)