日期:2014-05-18  浏览次数:20365 次

为什么无法继续跟踪了???
数据库里面,用一个表A,保存事件探查器的跟踪数据。

另外一个表B,在上面加一个UPDATE触发器,用来把UPDATE的一些相关信息记录到表C中。

A和C得到一个视图,能够组合成一些较为规整的信息。

在表A上添加一个INSERT触发器,根据最新插入的数据,调用一个较为复杂的存储过程,对其它的表进行操作,包括查询、更新、删除。


但是现在我发现,在查询分析器中执行对B的UPDATE操作,会引发事件探查器的错误,就是跳出一个消息框,说“将跟踪数据保存到表失败。”

我曾怀疑是不是触发器发生了循环嵌套?但是一来想想逻辑关系没有问题,二来触发器的操作似乎是不被跟踪记录的啊。

大虾帮我想想是为什么吧~

其实我就是想能够在对B做了UPDATE操作后,及时地取到相应的跟踪数据表中的记录。

但是我发现似乎是只有当B上的UPDATE操作以及它引起的所有触发器(包括嵌套的)都执行完之后,跟踪数据表中才有相应的记录,即使我用StmtStarting跟踪也不行


郁闷啊

------解决方案--------------------
就是我不会,要不一定帮你 呵呵
------解决方案--------------------
在表A上添加一个INSERT触发器,根据最新插入的数据,调用一个较为复杂的存储过程,对其它的表进行操作,包括查询、更新、删除。 
---------------------------------------
你这个问题估计是锁冲突造成插入数据失败的。
不太清楚事件探查器写表时有什么附加的操作。
试试手工在表A插入记录会有什么问题?

感觉你是想通过事件探查器去追踪数据修改的情况。
这样数据库的开销会增大,而且你的表A里面的记录会增加地非常快,除非你只追踪很少一部分操作。
一般使用事件探查器是用于性能调试和查错,都不建议写到表里面。