【发布时间】:2014-04-17 06:40:12
【问题描述】:
每次更新 SQL Server 表中的行时,我都想更新 LastUpdatedOn datetime2 列。为此,我正在考虑使用After Update 触发器将LastUpdatedOn 设置为sysutcdatetime()。此触发器还负责检测列更改并将旧值保存到历史表中。我的问题是,触发器方法会保存更新行时间的准确表示吗?实际更新与After Update 触发更新LastUpdatedOn 之间是否存在时间延迟?
另外,阅读http://technet.microsoft.com/en-us/library/bb630387.aspx,看起来GetSystemTimeAsFileTime() 在多个服务器上可能并不准确。在具有大量并发写入的分片数据库架构中,检测事件时间的最可靠方法是什么,以便我知道整个集群中的事件顺序是正确的?
附:我曾考虑过使用Change Data Capture,但它在 SQL Azure 中不可用。
【问题讨论】:
标签: sql-server triggers azure-sql-database change-data-capture