2011-11-04 58 views
0

我有一個表有3個觸發器的更新(僅適用於該場景)...tiggers訂單沒有明確的設置?

我沒有明確使用sp_settriggerorder命令來設置順序。

觸發器的順序是什麼?

如何通過查詢找到訂單?

p.s.

ExecIsFirstUpdateTrigger不幫我在這裏,因爲它的工作只有如果我使用sp_settriggerorder設置順序。 (但在我的情況下,我只是創建了3個更新觸發器 - 所以我如何獲得訂單?)

+0

您可以設置第一個觸發器和最後一個觸發器,如果​​您沒有超過3個,可以確保順序是確定性的。 –

+0

@MartinSmith如果我有4個tr的話,我猜它是一個問題.... –

+0

@Royi - 爲什麼你會想要4觸發器呢?但是,在那種情況下,你不能確定所有的訂單4. –

回答

0

如果您沒有指定訂單,那麼沒有固有訂單。這就像一個SELECT查詢 - 觸發器執行的順序是SQL Server感覺就像在運行它們的順序。

+0

你告訴我,有一天他可以首先執行tr1,並且明天首先執行tr2觸發器? –

+0

通常,執行順序不會像這樣隨機更改。通常觸發器將按照它們在表上創建的順序運行,但這種行爲在任何規範中都沒有定義,當然也不是您應該依賴的。 –

+0

@DaveC桌子上的5個觸發器呢? (第一個......最後 - 大約2,3,4?) –