有一基础表,有很多字段,需要对修改的内容进行保存,如何知道每次修改的是哪一个字段的内容并保存起来,以备以后查询?

解决方案 »

  1.   

    每次update前,把当前记录插入到一个历史记录表(比基础表多几个字段:修改时间,修改人)
      

  2.   

    最好的办法还是使用触发器,我们的生产数据库都是用触发器跟踪记录的插入、更改和删除操作,在触发器中用columns_updated()函数和对应字段的位掩码进行位与可以确定哪些字段被更改了,将更新字段的内容和原始内容还有客户端信息保存到记录表即可。这样效率是最高的,就是大容量数据复制默认不会触发触发器,类似bulk insert和图形界面的导入数据功能,不过这种操作基本都是管理员才有的权限,一般用户不会有这种权限。