Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在无限循环中停止触发器?_Sql Server_Sql Server 2014_Database Trigger - Fatal编程技术网

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

Sql server 如何在无限循环中停止触发器?,sql-server,sql-server-2014,database-trigger,Sql Server,Sql Server 2014,Database Trigger,比方说,我做了一件非常愚蠢的事情,创建了一个有无限循环的触发器。它不是嵌套,也不是递归;我只是有一个,而循环显然没有退出 现在我根本无法使用触发器。。。我不能更新它,不能删除它,不能禁用它。我所有使用它所附的表的程序都不能因为它而对表做任何事情。我一路退出了SQL Server,但当我回来时,我也遇到了同样的问题 有没有办法杀死该触发器?只要您拥有必要的权限,您可以执行以下操作: 打开/运行SSMS并连接到相关服务器。 更改以使用正确的数据库 在SSMS中,运行SP_Who2 这将为您提供所有连

比方说,我做了一件非常愚蠢的事情,创建了一个有无限循环的触发器。它不是嵌套,也不是递归;我只是有一个
,而
循环显然没有退出

现在我根本无法使用触发器。。。我不能更新它,不能删除它,不能禁用它。我所有使用它所附的表的程序都不能因为它而对表做任何事情。我一路退出了SQL Server,但当我回来时,我也遇到了同样的问题


有没有办法杀死该触发器?

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

打开/运行SSMS并连接到相关服务器。 更改以使用正确的数据库

在SSMS中,运行
SP_Who2

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

使用任何一个连接
SPID
并运行
DBCC-INPUTBUFFER(SPID)

如果该连接正在运行触发器,则可以通过发出
kill SPID.


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

这是在生产中吗?有机会重新启动服务器吗?幸运的是,我仍然处于开发环境中。我没有重新启动服务器的权限,但我可以问那些重新启动服务器的人。或者,如果您执行sp_who 2它应该告诉您所有活动的连接,您可以查看它是否是这些连接之一,然后将其杀死(提示:使用DBCC INPUTBUFFER(spid)查看正在运行的命令)重新启动服务器就完成了。我想我有点惊讶,他们没有创造出一个更简单的方法来解决这样的问题。如果它在同一个spid下运行,那么它可能会显示在sp_who2中,如果你能抓住它。然后一个简单的杀戮(SPID)将摆脱它。这是非常极端的