目前,我拥有SQL Server 2005数据库,我拥有管理员权限,但没有sysadmin权限。
有一个特殊的过程阻止我在桌子上做几件事。
有没有办法杀死用户SQL查询,如果它们是在没有sys管理员权限的情况下通过Web客户端运行的。就我而言,django网站使用pymssql运行查询?
答案 0 :(得分:1)
出于一个很好的理由,使用“KILL”是角色限制的,并且只有在您了解阻止进程正在执行的操作时才应使用它。如果对执行长时间运行的事务的SPID使用KILL语句,则KILL将在表上启动ROLLBACK(在大型表上可能需要一段时间)以维持DB一致性。声明:
SELECT open_tran FROM master.sys.sysprocesses WHERE SPID=<blocking SPID number>
将为您提供有关流程及其工作的详细信息。或者你可以尝试:
DBCC INPUTBUFFER(<spid>)
找到SPID提交的最后一个语句(虽然我认为您的权限可能不够)。如果确定SPID在块上休眠,则仍然需要升级到processadmin的最小角色才能执行KILL语句。
其他三项建议可以帮助您:
答案 1 :(得分:0)
使用命令查看连接sp_who
,然后使用命令KILL <SPID>
答案 2 :(得分:0)
如果您正在使用ssms,请尝试关闭/保存您sp或查询开始运行的编辑器窗口
ssms会要求您提交交易,只需按ok
就是这样!