禁用触发挂起?(Disable trigger hangs?)

2019-10-28 11:14发布

我需要从ASP.NET Web应用程序做到这一点:

Alter Table Contacts Disable Trigger All 
-- Do some stuff
Alter Table Contacts Enable Trigger All

在某些情况下, Disable Trigger声明挂起。 我应该从哪里开始寻找弄清是怎么造成的? 如果我重新启动SQL服务器,又回到正常行为。

Answer 1:

看到从SSMS活动监视器,看看它为什么块。 或者,你可以看看blocking_session_id列是sys.dm_exec_requests

我的猜测:架构更改需要表上的架构修改锁。 任何操作(比如SELECT,UPDATE等)将放置在桌子上的模式稳定性锁,阻止任何ALTER直到SELECT完成。 因此,禁用触发器ALTER被所有未决表的访问(SELECT)语句blcoked。



文章来源: Disable trigger hangs?