2010-08-06 98 views
1

我們可以在單個表上創建超過插入觸發嗎?如果是的話,那麼他們是如何執行的,以及在觸發和何時構建之後有什麼想法?如果沒有,那爲什麼?在sql server中觸發

+0

是的,你可以,但它會影響性能,取決於它在做什麼,以及你在表中移動多少數據。 – 2010-08-06 20:08:51

+0

你可以定義同一類型的多個觸發器,但是你不能控制它們在 – 2010-08-06 20:20:07

+0

中執行的順序,我避免觸發器,除非它是絕對必要的。 – DForck42 2010-08-09 14:00:21

回答

1

您絕對可以在SQL Server表上創建多個觸發器。

如果您不做任何事情,他們將按照服務器喜好的順序執行任何操作,並且每次都不會是相同的順序。

您可以強制某些訂單邏輯,以便最多3個觸發器以您想要的順序觸發。您可以定義FIRST和LAST觸發器。它給你最多3個有序觸發器,因爲沒有FIRST或LAST定義的觸發器會在中間觸發。您還可以執行更新/插入/刪除替換觸發器或發生在事件之後的觸發器,而不是使用AFTER關鍵字。結帳這些文章以瞭解更多信息和準確的代碼:

最後,觸發一般數據庫放緩。這對於SQL Server來說尤其如此,因爲它被認爲是一個巨大的速度殺手。一般來說,觸發器應該儘可能地少用。