我想知道执行语句和触发第一个AFTER触发器之间的时间延迟。在出于并发原因查询完成后,我将对datetime2字段进行简单更新。 INSTEAD OF触发器将是我的第一选择,但SELECT INTO不适用于SQL Azure。
我想知道在AFTER触发器开始执行之前是否可以检索一行,如果是这样,在重负载下发生这种情况的可能性是多少?
答案 0 :(得分:3)
没有延迟。触发器是事务/声明的一部分。
此外,您还有包含已更改数据的INSERTED和DELETED特殊表:无需在触发器中查询实际表
修改
最后,如果列上有默认值,则可以使用此
UPDATE
SomeTable
SET
foo = ...,
bar = ...,
TheDateTime2Column = DEFAULT -- this
WHERE
...
答案 1 :(得分:0)
没有预定义的延迟,但是如果你在两个地方调用GETDATE(),你可能迟早会得到不同的结果,具体取决于硬件,数据量和触发器的复杂程度。 / p>
为了确保您没有读取脏数据或不一致数据,您应该根据您需要的数据访问类型明智地使用事务隔离级别。