我有一张记录表TABLE,同时针对这张表我建了三个触发器用于记录用户的新增,修改,删除操作,我将这些操作记在TABLE_History中,但时间长了记录太多也影响数据库;我想让数据库自动清除TABLE_History中三个月前的操作记录有没有办法??
解决方案 »
- MSSQL 2005 和 2008 的工作群版(Workgroup Edition)具体应用在什么方面?
- 建虚拟表起标识列
- sql server 2005中新建用户
- 急! 请高手指点! 怎样配置sqlserver集群?
- 一个简单的数据导入问题,郁闷啊。。。。
- vpn连接好后,客户端可以ping通服务器,服务器无法ping通客户端。
- 菜鸟求查询语句,最好简练点的!
- 一个父子查询兼其他问题急用啊
- 如何在VB中使用ADO来实现多个表单的更新?
- mina 卡死在mina卡死在cf.getSession().getCloseFuture().awaitUninterruptibly()
- 在SQL语句中如何给列重命名(新的列名有【】等特殊字符和全角的)
- 请哪位帮我写写这个检查约束。谢了。
--2
DELETE TABLE_History WHERE DATEDIFF(MM,時間字段,GETDATE())>3
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名 ... --该存储过程用于创建表 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
如果记录表经常操作,可以记录个标识,如果当天已经执行了就不用再执行;
如果那天记录表不更新,就当认可那‘三个月’的数据量。
当然这种思路性能上会差些。仅当没事瞎聊。这样就不用“作业”处理了,作业处理那个时点必须开着机器。