赛迪网 > IT技术 数据库 > 高手晋级
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

SQL Server记录修改追踪和恢复的解决方案

发布时间:2008.04.30 04:52     来源:赛迪网    作者:Alice

【赛迪网-IT技术报道】在开发过程中中,可能很多人都遇到这样客户要求:使用者操作数据库关键记录时要记录使用者的ID,时间,修改的内容等,在必要的情况下要回滚到某一时刻的记录内容。本文将介绍两种解决此问题的方案:

1.数据表冗余记录法

在关键的数据库表中,加入 "创建时的日期时间"、"创建用户"、"修改或删除时的日期时间"、"修改或删除用户"、"记录状态" 等字段,当然了字段名可以简化,这里为了更好的说明。“记录状态”包括“当前可用”和“存档”两种状态。当用户修改记录时,要执行两步操作 1).更新当前数据库记录,记录修改者和时间,把“记录状态”改成“存档”。2)新建一条记录,把修改者和时间作为创建者和时间存入,保存新的记录内容,而“记录状态”为“当前可用”。 如果用户删除记录,只是执行第一步操作即可。

这种方案可以用程序在前台方便的察看记录修改历史情况,并可以很容易的回滚到“某一时刻”,这里的回滚不是真正的回滚,仍然要在表里新建记录,和上面提到的修改记录操作相同,只不过记录的内容是“某一时刻”的内容而已。

使用这种方法会造成数据库表中记录的过多存储,在查询和统计时性能会有影响。

2.新建数据表记录操作

在数据库中为关键数据表建立对应的“操作记录表”,所有对关键记录的修改、删除甚至读取都可以记录在“操作记录表”中,具体的实施可以在程序代码中控制,但更好的方法是可以使用触发器控制。

这种方案也可以在前台方便的察看记录修改历史情况,并可以很容易的回滚。

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 角色赋给指定用户即可拥有备份数据库权限 (04-27) · Web环境下数据的磁带备份与恢复 (04-27)
· 通过SQL Server对上传文件内容进行查询 (04-23) · SQL Server超级管理员账号防护知识 (04-22)
· SQL Server数据库超级管理员账号防护知识 (04-22) · 在SQL Server数据库中如何减少死锁发生 (04-21)
· 使用SQL语句快速获取SQL Server数据字典 (04-21) · 将SQL Server中所有表的列信息显示出来 (04-20)
· 教你快速掌握SQL语言中游标的使用技巧 (04-17) · 讲解关系型数据库中游标的优点及种类 (04-17)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 移动信息化市场方兴未艾 企业呼唤标准出台
· 如何把握企业价值差异 避免CRM与SCM脱节
· 齐看四大厂商的SaaS动态 ERP案例分析
· 通方期货CRM解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统