日期:2014-05-19  浏览次数:20603 次

请教用存储过程怎么实现这个事务?
做一个带数据库系统,要求删除修改记录时能还原(不是删除前确认,而是删除后还原),初步想法是点删除后提交一个删除事务,然后如果马上点还原,就进行还原,滚回事务,否则离开页面后事务被自动提交,请教怎么写这个程序?用存储过程怎么写?

------解决方案--------------------
begin tran
--删除代码

--还原
rollback tran

--提交
commit tran
------解决方案--------------------
这样考虑怕是不行,还不如用点简单实际的,事务还等着你交互?
------解决方案--------------------
lilizf(3次遇上88888的校验码) ( ) 信誉:100 Blog 加为好友 2007-05-18 10:30:40 得分: 0


问题是点击一个按钮只能执行一个存储过程,而事务在一个存储过程里必须提交或者滚回,不能最后挂着.所以很难响应事件

--------------------------------------
那就建个删除触发器,将deleted表内容存至日志表,还原的时候从日志表再转回来.
------解决方案--------------------
--建立删除日志表
select top 1 * into 删除日志表 from 原表 where 1=2
go

--建立删除触发器,将删除的数据存至删除日志表
create trigger td_原表 on 原表
for delete
as
truncate table 删除日志表
insert into 删除日志表
select * from deleted
go

--还原代码
insert into 原表
select * from 删除日志表

--上面的代码功能是实现还原最后一次删除操作.