不是你打错了就他打错了。没有什么delta值

解决方案 »

  1.   

    不过这个不用猜当你的数据库恢复模型不是 simple 的时候, 使用 Log Explorer 这个工具可以从 sql 的日志中获取用于恢复你的误操作的 undo 语句如果 log 中没有记录update 前后的值, 上述这点显然做不到. 所以既然别人的工具做到了, 那说明 sql 的 log 不是那样存储的.
      

  2.   

    delta ?是否是delete啊
    有zjcxc(邹建)前輩在此,站在一邊學習
      

  3.   

    首先非常感谢zjcxc!
    我就是使用Log Explorer发现的,在显示View log时,如果是update的记录,会首先在下面显示old(delta)和new(delta),然后,按Reconstuct按钮,才显示实际的old和new的值。
    比如:我有下面的情况
    create table t1(a int,b datetime)
    insert into t1(1,'2007-05-01')
    update t1 set b='2007-06-01' where a=1
    然后,我在Log Explorer的view log中发现update的这条操作,首先显示
    old(delta)   new(delta)
    1900-02-03   1900-03-06
    按Reconstuct按钮后,显示
      old          new
    2007-05-01   2007-06-01 我看了Log Explorer的帮助:
    “In the case of an Update operation, SQL Server stores the old and new data as delta values that are computed based on the previous row"
    很不明白delta如何计算的?
    还请zjcxc能指点一二,非常感谢
      

  4.   

    delta是增量的意思。delta value就是指这条记录更新前和更新后的差异。如果你只更新一个字段,它就记录那个字段的变化,不包含其他字段。
      

  5.   

    但delta计算的有问题阿,你看看我给的例子,谢谢