2013-05-03 29 views
0

我想知道执行语句和触发第一个AFTER触发器之间的时间延迟。由于并发原因,在查询完成后,我将对datetime2字段进行简单更新。 INSTEAD OF触发器是我的第一选择,但SELECT INTO不适用于SQL Azure。SQL Server - 执行顺序/ AFTER TRIGGER

我期待,以找出是否有可能之前AFTER触发器开始执行它们检索行,如果是这样,这是什么情况发生的重负载下的机会呢?

+1

由于该行仍然没有承诺,我怀疑另一个交易将能够看到它。 – 2013-05-03 12:04:22

回答

3

这样没有延迟。触发器是交易/声明的一部分。

此外,你必须inserted和deleted包含更改的数据的特殊表:无需查询的实际表中的触发器

编辑

最后,如果是在列的默认,然后您可以使用此

UPDATE 
    SomeTable 
SET 
    foo = ..., 
    bar = ..., 
    TheDateTime2Column = DEFAULT -- this 
WHERE 
    ... 
0

没有预定义的延迟,但如果你是在两个地方调用GETDATE()你可能会得到不同的结果,早晚,取决于硬件,数据量和tr的复杂性iggers。

要确保你不读脏或不一致的数据,你应该明智地使用事务隔离级别,根据你所需要的类型的数据访问。