2017-05-09 99 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

相关问题