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