2017-05-09 44 views
-1

我正在處理的數據庫有一個觸發器,它調用一個需要42秒才能運行的存儲過程,如果我使用T-SQL執行UPDATE。如果我在SQL Server Management Studio中編輯行,該行立即更新。觸發器在編輯窗口以及T-SQL UPDATES中執行,不是嗎?在什麼情況下執行SQL Server觸發器?

如果我直接運行它或使用EXEC調用它,存儲過程中的SQL代碼會立即回來,唯一的情況是運行速度緩慢的情況是由UPDATE語句調用觸發器時。

+0

無法理解你的疑問。你真的想達到什麼目的?請提供更多細節。還提供觸發語法 –

+1

取決於觸發器的功能。有多少行受到影響?存儲過程有什麼作用?等等。 – Ben

+0

如果您在SQL Server Management Studio中編輯行觸發器觸發? – Glyn

回答

1

它取決於如何設置觸發器,觸發器只能在Update,Delete和Insert語句上運行(取決於選擇三者中的哪一個)在該表上設置。

你能給出用於創建觸發器的代碼嗎?

+0

CREATE TRIGGER [dbo]。[refreshSubscriptionAddressBlock] ON [dbo]。[ADDRESS] FOR UPDATE AS SET NOCOUNT ON; IF EXISTS(SELECT * FROM inserted) 要運行的代碼 GO – Glyn

+0

好吧,那麼是的,如果你編輯(更新)地址表中的一行,觸發器將被'觸發' –

+0

可愛這就是我的想法,但在這一點我懷疑自己的感謝。現在我只需要弄清楚爲什麼存儲過程需要42秒才能在t-sql更新中運行。感謝您的幫助 – Glyn