sql-server - 在触发器上插入日期和时间 6 天
问题描述
我有一个执行良好的触发器,并且已经运行了 5 年。然而今天,发生了一个非常奇怪的问题,触发器的日期/时间与其前后条目相差 6 天。我想知道是否有人可以阐明可能导致这种情况的情况?
触发代码:
ALTER TRIGGER [dbo].[DateTriggerEventTimes]
ON [dbo].[EventTimes]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS(SELECT * FROM DELETED)
BEGIN
UPDATE ES
SET InsertDatetime = GETDATE(),
LastUpdateDateTime = GETDATE()
FROM EventTimes es
JOIN Inserted I ON es.EVENTTIMESID = I.EVENTTIMESID
END
IF UPDATE(LastUpdateDateTime) OR UPDATE(InsertDatetime)
RETURN;
IF EXISTS (SELECT *
FROM INSERTED
-- make sure to compare inserted with (same) deleted personI
JOIN DELETED D ON D.EVENTTIMESID = I.EVENTTIMESID)
BEGIN
UPDATE ES
SET InsertDatetime = ISNULL(es.Insertdatetime, GETDATE()),
LastUpdateDateTime = GETDATE()
FROM EventTimes es
JOIN Inserted I ON es.EVENTTIMESID = I.EVENTTIMESID
END
END
有问题的查询的结果如下所示,其中 EventtimesID 2760435 是奇数。所有这些我已经通过其他方式确认了大致在同一时间进入数据库的位置,这意味着这个日期绝对不应该比其他日期早 6 天。
事件时间ID | 复杂代码 | 已删除 | 上次更新日期时间 | 插入日期时间 |
---|---|---|---|---|
2760430 | 4 | 0 | 2021-02-15 14:13:34.070 | 2021-02-15 14:13:34.070 |
2760433 | 1 | 0 | 2021-02-15 14:14:25.100 | 2021-02-15 14:14:25.100 |
2760434 | 2 | 0 | 2021-02-15 14:14:48.623 | 2021-02-15 14:14:48.623 |
2760435 | 2 | 0 | 2021-02-09 13:11:22.610 | 2021-02-09 13:11:22.610 |
2760436 | 2 | 0 | 2021-02-15 14:15:24.380 | 2021-02-15 14:15:17.980 |
2760437 | 15 | 0 | 2021-02-15 14:15:26.580 | 2021-02-15 14:15:26.580 |
解决方案
推荐阅读
- python - 与许多模型相关的 Django ContentType
- maven - 如何在 IntelliJ 中将 Gmail API 库添加到我的 Maven 项目?
- json - 赛普拉斯 - 在 json 文件中查找嵌套属性
- zendesk - Zendesk API - 是否可以同时编辑 2 个单独的类别?
- go - 关于 golang 中未使用的变量
- java - 获取当前系统 UTC 日期和时间并添加 5 秒并将其格式化为所需格式的单行
- c# - 以编程方式打开 Win32 系统 AutoComplete
- angular - 如何使用 Angular MatSort 和 MatTable
- r - 在 R 中绘制分组条形图
- java - WebFlux 如何以及在何处保存文件?