SQL - 啟用與停用 Trigger ( 觸發程序 )

摘要:SQL - 啟用與停用 Trigger ( 觸發程序 )

最近要 把同資料表中的 A欄資料 更新到 B欄資料,很直覺的就下了 T-SQL 結果跑了一個多小時讓我嚇到了。檢查了一下才發現,原來是 Trigger 在搞鬼,因為這支 Trigger 在 Insert、Update 與 Delete 都會觸發,且裡面又有 商業邏輯 在運算,難怪十幾萬筆資料要跑一個多小時還跑不完。在考慮到只是單純的更新作業,姑且就把 Trigger 停用 再 啟用,以下是 T-SQL 語法...

停用 Trigger ( 觸發程序 )

語法:

DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]

實作:

DISABLE TRIGGER dbo.trg_測試資料表1 ON dbo.測試資料表1

啟用
Trigger ( 觸發程序 )

語法:

ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]

實作:

ENABLE TRIGGER dbo.trg_測試資料表1 ON dbo.測試資料表1


呆言呆語:這樣下去後,六秒就更新完了,真是冤大頭啊...

參考:
DISABLE TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)