【发布时间】:2018-07-13 21:02:55
【问题描述】:
我在基于 SQL Server 的应用程序中遇到了一个奇怪的情况,我试图弄清楚我在尝试解释它时遗漏了什么。
我在表上有一个触发器,每次更新/删除表中的记录时,触发器都会将日志插入到日志表中。 Bellow 是我最近发现的日志表的一个示例。
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 小于 ID 较小的其他(较旧)记录的 UpdatedDate。这对我来说很奇怪,因为 ID 列是用 IDENTITY(1,1) 定义的,这意味着它是单调递增的。因此,ID 的值越高,记录越新,因此 UpdatedDate 列应始终增加,并且记录 #23 不应具有较旧的时间戳。
顺便说一句,在日志表中的插入只使用 GETDATE() 作为 UpdatedDate 列。
这可以用某种方式解释吗?
【问题讨论】:
-
编辑您的问题并显示触发器的(相关)代码。
标签: sql sql-server database