在TSQL中定期删除行

fir*_*ger 3 sql t-sql sql-server sql-server-2005

我有一个审计表设置,它基本上反映了我的一个表以及日期,用户和命令类型.这是它的样子:

AuditID      UserID Individual    modtype   user  audit_performed
1           1239      Day Meff      INSERT    dbo   2010-11-04 14:50:56.357
2           2334      Dasdf fdlla   INSERT    dbo   2010-11-04 14:51:07.980
3           3324      Dasdf fdla    DELETE    dbo   2010-11-04 14:51:11.130
4           5009      Day Meffasdf  UPDATE    dbo   2010-11-04 14:51:12.777
Run Code Online (Sandbox Code Playgroud)

由于这些类型的表可以很快变大 - 我正在考虑对某些旧行进行某种自动删除.所以,例如,如果我有3个月的历史 - 如果我可以删除第一个月同时保留最后两个月.所有这一切都必须是自动的 - 我想一旦某个日期被点击,查询就会激活并删除带有审计数据的最早月份.做这个的最好方式是什么?

我顺便使用SQL Server 2005.

o. *_*ate 5

SQL代理作业应该没问题.您绝对不需要在每个带触发器的插件上执行此操作.我怀疑你甚至需要每天都这样做.您可以安排一个月运行一次的工作,并清除超过2个月的任何事情(因此,在任何给定时间,您最多有3个月的数据减去1天).