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

C# 如何在一定时间后自动删除sql server中的记录,c#,sql,asp.net,sql-server,database,C#,Sql,Asp.net,Sql Server,Database,我已经在我的sql数据库中设置了临时用户帐户,其中存储了我的网站用户的用户名、密码和添加日期 我最初打算通过编程方式删除这些记录,但现在我想知道SQLServer2008是否有一个内置函数,允许记录在一天之后自动删除 这将解决用户在临时帐户关闭后仍能登录系统的问题 谢谢创建一个存储过程来执行此操作,然后按照说明计划存储过程的运行 从myTable中删除 其中timeStamp

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

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

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


谢谢

创建一个存储过程来执行此操作,然后按照说明计划存储过程的运行

从myTable中删除
其中timeStamp
您可以让您的程序执行此操作,或者设置一个。

您可以创建一个
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 getdate() - CreatedAt < 1;
将vw\u登录创建为
选择名称。
从t
其中getdate()-CreatedAt<1;

您可以创建将删除列的过程,然后创建作业,在作业中您可以安排此过程的执行。不要以纯文本形式存储密码。您需要这样做。您可以编写一个SP,该SP将执行并删除那些超过一天的操作,然后运行作业将其删除。。。我对这两件事都不太了解,这就是为什么我不回答这个问题的原因,因为我使用的是sql server express,我无法访问sql server agent,看起来可能需要通过编程来完成。Hi Maslow,你能解释一下如何设置sql agent任务吗?这正是链接的作用。嘿,我创建了一个存储过程,但我试图了解如何在Sql管理研究中设置时间表出于好奇,为什么要有一个计算列,而您可以将它放在视图中?@AshBurlaczenko。你没有。我的思想是在考虑拥有一个视图之前,沿着计算列的道路前进的。@Ashburaczenko视图是如何工作的?
create vw_Logins as
    select name, . . .
    from t
    where isValid = 1;
create vw_Logins as
    select name, . . .
    from t
    where getdate() - CreatedAt < 1;