日期:2014-05-16  浏览次数:20496 次

触发器如何实现自动备份老数据?
目前操作数据库存在一个问题,总有人随意去更改字典库表里面的价格。所以需要做一个触发器,每当feedetail表存在update;insert;delete操作时,先不进行操作,而是先将原始表feedetail数据内容备份到feedetail_old表中,再在feeditail_old表加一列alter_date(修改时间),修改时间取getdate()。
请问这样的触发器能实现吗?数据库为sql2008
------解决方案--------------------
引用:
是只复制当前修改的数据行,没修改的就复制。可能某行数据会进行多次update操作,那么在feedetail表中就会有多个修改记录


create trigger dbo.feedetail_xx
on feedetail
for insert,delete,update
as

if exists(select 1 from inserted ) and exists(select 1 from deleted)
insert into feedetail_old
select *,GETDATE() from deleted