2013-05-03 130 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。

要確保你不讀髒或不一致的數據,你應該明智地使用事務隔離級別,根據你所需要的類型的數據訪問。