如何在无限循环中停止触发器?

How do I stop a trigger in an infinite loop?

假设我创建了一个包含无限循环的触发器,这确实很愚蠢。它不是嵌套或递归的;我只有一个 WHILE 循环,显然没有退出。

现在我根本无法访问触发器...我无法更新它,无法删除它,无法禁用它。我的 none 程序使用 table 它所附加的可以用 table 做任何事情,因为它。我已经退出 SQL 服务器,但当我重新进入时,我遇到了同样的问题。

有什么方法可以杀死那个触发器?

只要您拥有必要的权限,您可以执行以下操作:

打开/运行 SSMS 并连接到有问题的服务器。 更改为使用正确的数据库

在 SSMS 中,运行SP_Who2

这为您提供了所有连接及其状态的列表。

任意连接SPID#和运行DBCC INPUTBUFFER (SPID#)

如果该连接正在 运行 触发您的触发器,您可以通过发出 KILL SPID#

来终止连接

然后继续阅读为什么要避免触发。