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

Mas*_*oda 7 c# sql database sql-server asp.net

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

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

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

谢谢

Dar*_*ren 12

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

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


Mas*_*low 5

你可以让你的程序来做,或者设置一个sql 代理作业


Gor*_*off 3

您也许无需实际删除记录即可获得所需的内容。您可以在表中添加计算列来说明记录是否有效。

 IsValid as (case when getdate() - CreatedAt > 1 then 0 else 1 end)
Run Code Online (Sandbox Code Playgroud)

您还可以对记录中的关键字段执行此操作,这样您就找不到它们:

_name varchar(255),
name as (case when getdate() - CreatedAt < 1 then _name end)
Run Code Online (Sandbox Code Playgroud)

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

create vw_Logins as
    select name, . . .
    from t
    where isValid = 1;
Run Code Online (Sandbox Code Playgroud)

然后,在您闲暇时,如果出于性能原因需要的话,您实际上可以删除这些行。

编辑:

如果您将视图表述为:您实际上并不需要计算列:

create vw_Logins as
    select name, . . .
    from t
    where getdate() - CreatedAt < 1;
Run Code Online (Sandbox Code Playgroud)