求指教__如何知道引发触发器的操作语句是什么?比如 执行了一条语句 delete from
然后出发了 delete 触发器
如何能知道 引发触发器的 语句 是什么我有一个系统中的一张表 总是无缘无故丢失数据
头疼中

解决方案 »

  1.   

    執行delete 命令,該表中的 for delete 触發器都將會執行.
      

  2.   

    建议给表的for delete 中增加一个日志.
    记录什么时间,什么用户,什么电脑做的删除操作
      

  3.   

    SQL是什么版本,2000和2005可以去下载个LOG工具,看看日志关于这张表有什么意外的操作,然后去看看丢掉的数据和这张表相关联的触发器有没有什么联系,最后你可以在一个时间段内建立一个SQL跟踪,看看对这张表都做了哪些操作,进一步分析可能引起数据误差的语句及触发性的操作。
      

  4.   

    2008的话可以使用cdc来获取变更的数据,但是是哪个语句执行的就获取不聊:
    http://blog.csdn.net/dba_huangzj/article/details/8130448你也可以使用DML触发器来记录delete操作的语句。还有一种更改比较大的方法,就是做假删除,加一个字段用于记录删除状态,前端的第一次删除就把这个字段改变,查询时用where 该字段假设等于1为已删除这样来查询非删除数据。当在前端“回收站”中再次删除时,才真正delete这个数据。
      

  5.   

    在频繁增删改的表上创建触发器并不是good idea