有一个系统,一共3.40个表,我只知道某一个表是会员注册的,我没办法知道程序除了往这一个表里插入数据以为还对哪些表做了操作,(这个系统有很多功能) 我想知道如何监视 某一个表执行插入操作以后 一段时间内或最近的N个操作的详细sql语句,不知道我的意思我说明白没有 希望高手指点!解决马上揭帖。

解决方案 »

  1.   

    在想要监视的表上建立触发器可以监视相应的数值改动,但是至于监视人家操作的详细sql,不知道如何实现。
      

  2.   

    DBCC INPUTBUFFER (spid)
    可以查询指定连接进程执行的最后一条SQL,可以使用sp_who获得所有的spid
      

  3.   

    DBCC INPUTBUFFER (spid)
    可以查询指定连接进程执行的最后一条SQL,可以使用sp_who获得所有的spid我用了以后 输出 Language 事件 参数 0 info use [golf]
      

  4.   

    意思是该连接得上一条SQL应该是use [golf]
      

  5.   

    我参与的一个项目涉及到远程监视SQL SERVER,并把信息实时上报,我用的就是这种办法。感觉这比直接观察事件探测器要麻烦,但是我也没有太好的办法,要想实现这种需求只能用T-SQL编程了。
      

  6.   

    DBCC INPUTBUFFER (spid) 这是最后一条语句 能查询 所有吗?
      

  7.   

    系统好像没有提供相关的查询吧!
    楼主可以记录对数据的每一笔修改,然后根据记录查询,这种方式可以用触发器实现,同时专门建表来存储对数据的每一笔修改,我觉得这是个好办法。
    另外,还可以建议你反复的调用DBCC INPUTBUFFER (spid) ,比如每几十秒,或者更短就调用一次不就可以实时监视连接了么。
      

  8.   

    那么还是反复的调用DBCC INPUTBUFFER (spid)比较好些