代码之家  ›  专栏  ›  技术社区  ›  DKhanaf

SQL Server标识(1,1)列未与updatedDate同步生成

  •  1
  • DKhanaf  · 技术社区  · 6 年前

    我在基于SQL Server的应用程序中遇到了一个奇怪的情况,我正在试图找出在试图解释它时所缺少的东西。

    我在一个表上有一个触发器,每次在表中更新/删除一个记录时,触发器都会将一个日志插入到一个日志表中。下面是我最近发现的日志表的一个例子。

    ID    UpdatedDate
    ------------------------------
    10    2018-07-06 12:20:54.287
    11    2018-07-06 12:20:54.657
    12    2018-07-06 12:20:54.703
    13    2018-07-06 12:20:54.910
    14    2018-07-06 12:20:54.900
    15    2018-07-06 12:20:54.953
    16    2018-07-06 12:20:55.070
    17    2018-07-06 12:20:55.087
    18    2018-07-06 12:20:55.100
    19    2018-07-06 12:20:55.113
    20    2018-07-06 12:20:55.117
    21    2018-07-06 12:20:55.143
    22    2018-07-06 12:20:55.243
    23    2018-07-06 12:20:53.973
    

    如果你看最后一张记录23, UpdateDate 小于 UpdatedDate 其他(旧)记录中ID较小的记录。这对我来说很奇怪,因为ID列是用 IDENTITY(1,1) 也就是说它是单调递增的。因此ID值越高,记录越新,因此 更新日期 列应始终递增,并且记录23不应具有旧的时间戳。

    btw插入到日志表中只使用 GETDATE() 对于 更新日期 列。

    这可以解释吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gordon Linoff    6 年前

    updatedDate update delete id

    default getdate()