觸發器執行時若嘗試更新觸發其本身的資料表,會導致遞迴觸發(無限循環)。SQL Server 提供兩種控制機制:限制巢狀層級(預設 32 層)與啟用/停用遞迴觸發器資料庫選項。
預設情況下,除非啟用 recursive triggers 資料庫選項,否則不會發生遞迴觸發。
下列範例示範在觸發器中使用游標處理多列資料,並配合遞迴觸發器控制,完成複雜的跨表同步邏輯。

sp_configure 'nested triggers')。TRIGGER_NESTLEVEL() 函數在觸發器內部偵測目前巢狀深度,決定是否繼續執行。CLOSE/DEALLOCATE 釋放資源,避免洩漏。遞迴觸發器是把雙面刃:功能強大但極易造成效能災難或邏輯錯誤。結合游標處理集合資料時,更需嚴謹設計終止條件與資源管理。生產環境建議預設關閉遞迴觸發,僅在經充分測試的受控情境下啟用。