我对SQL有点陌生,所以如果这个问题不太清楚,我会提前道歉。我想在SQL Server代理中创建一个作业,该作业将在24小时后删除一行,我的问题是SQL代理在午夜而不是24小时删除记录,例如,如果我在下午3点创建记录,该记录将在12 AM而不是第二天3 PM被删除,是否有什么可以解决此问题。
感谢您的帮助
不要采用这种方法!使用视图,然后再清理作业。
-- Have an expiration column in the table
create table t (
. . .
expire_datetime datetime
);
-- Filter out the unexpired rows for the view
create view v_t as
select t.*
from t
where expire_datetime > getdate();
通过视图进行所有访问。然后,您可以定期运行作业以删除过期的记录。您可以每天一次,每小时一次,每周一次-随时进行此操作。