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

解决方案 »

  1.   

    begin tran
    --删除代码--还原
    rollback tran--提交
    commit tran
      

  2.   

    lilizf(3次遇上88888的校验码) ( ) 信誉:100    Blog   加为好友  2007-05-18 10:30:40  得分: 0  
     
     
       问题是点击一个按钮只能执行一个存储过程,而事务在一个存储过程里必须提交或者滚回,不能最后挂着.所以很难响应事件
      
    --------------------------------------
    那就建个删除触发器,将deleted表内容存至日志表,还原的时候从日志表再转回来.
      

  3.   

    --建立删除日志表
    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 删除日志表--上面的代码功能是实现还原最后一次删除操作.
      

  4.   

    那就在前台用变量存储被删除记录的值,点还原的时候再将变量组合成insert语句插入回数据库.