0

LastUpdatedOn datetime2每次更新 SQL Server 表中的行时,我都想更新列。为此,我正在考虑使用After Update触发器设置LastUpdatedOnsysutcdatetime(). 此触发器还负责检测列更改并将旧值保存到历史表中。我的问题是,触发器方法会保存更新行时间的准确表示吗?实际更新与After Update触发更新之间是否存在时间延迟LastUpdatedOn

此外,阅读http://technet.microsoft.com/en-us/library/bb630387.aspx,看起来GetSystemTimeAsFileTime()跨多个服务器可能不准确。在具有大量并发写入的分片数据库架构中,检测事件时间的最可靠方法是什么,以便我知道整个集群中的事件顺序是正确的?

PS 我考虑过使用Change Data Capture,但它在 SQL Azure 中不可用。

4

1 回答 1

0

可能会有延迟,具体取决于您在单个语句中更新的行数以及记录的方式,因为触发器是在最后触发的。我建议在实际更新语句中更新时间。

此外,使用输出子句将数据移动到历史表。

于 2014-04-17T07:07:30.367 回答