SQL Server代理在午夜删除记录

问题描述 投票:0回答:1

我对SQL有点陌生,所以如果这个问题不太清楚,我会提前道歉。我想在SQL Server代理中创建一个作业,该作业将在24小时后删除一行,我的问题是SQL代理在午夜而不是24小时删除记录,例如,如果我在下午3点创建记录,该记录将在12 AM而不是第二天3 PM被删除,是否有什么可以解决此问题。

感谢您的帮助

sql sql-server sql-server-2017 sql-server-agent
1个回答
0
投票

不要采用这种方法!使用视图,然后再清理作业。

-- 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();

通过视图进行所有访问。然后,您可以定期运行作业以删除过期的记录。您可以每天一次,每小时一次,每周一次-随时进行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.