一个UPDATE语句,可以解析成:先DELETE,再INSERT.
但日志中应该记录的是:LOP_MODIFY_ROW.
楼主再试一次:UPDATE前先得到最大的LSN,再UPDATE一行,再查看日志:
SELECT * FROM  sys.fn_dblog(NULL, NULL)
WHERE allocUnitName = 'dbo.aaaa'   --表名
AND [Current LSN] > '00000035:00000105:0017' --最大的LSN

解决方案 »

  1.   

    楼上说的很对 UPDATE语句是分解成DELETE INSERT。
      

  2.   

    呃,我的意思是说,即使分解成DELETE和INSERT,也应该是一个MODIFY日志记录。而不应该记成2个。
      

  3.   

    一个UPDATE语句,可以解析成:先DELETE,再INSERT.
    但日志中应该记录的是:LOP_MODIFY_ROW.
    楼主再试一次:UPDATE前先得到最大的LSN,再UPDATE一行,再查看日志:
    SELECT * FROM  sys.fn_dblog(NULL, NULL)
    WHERE allocUnitName = 'dbo.aaaa'   --表名
    AND [Current LSN] > '00000035:00000105:0017' --最大的LSN
      

  4.   

    你不要做限制查询一下。我这里做一个UPDATE显示下面的信息:
    LOP_BEGIN_XACT
    LOP_DELETE_ROWS
    LOP_MODIFY_HEADER
    LOP_SET_BITS
    LOP_INSERT_ROWS
    LOP_COMMIT_XACT
      

  5.   

    我也遇到了这个问题,sqlserver的日志分析,update的根本是处理不了。