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)将摆脱它。这是非常极端的