SQL - 关闭会话后等待提交/回滚的表

时间:2017-07-04 03:23:19

标签: sql sql-server rollback locked

我有一个没有任何索引的大表,大约27.5m行。 我试图删除大约一半使用BEGIN TRAN的人。 然后我尝试取消查询,但因为花了很长时间我决定关闭管理工作室 现在,当我试着查看那张桌子时,它不会返回任何东西,只是一直在运行 当我运行SELECT TOP 10 * FROM Tbl时,它只执行而不返回任何内容 但是当我运行SELECT TOP 10 * FROM Tbl(NOLOCK)时,它会返回10行 这告诉我它正在等待Rollback/Commit的{​​{1}} 我认为它会在关闭会话和Management Studio后自动回滚  我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:1)

  

执行SP:SP_LOCK

     

在结果中,您将获得SPID,DBID,OBJID,INDID,TYPE,RESOURCE,   模式,状态
   现在检查状态列,如果它显示等待

     

杀死那个SPID。杀死特定的SPID执行SP:杀死65(其中   65是SPID)

MSDN Forum

答案 1 :(得分:0)

显然,这有效:

终止/关闭与数据库的连接可以解决这个问题。要关闭连接,您可以尝试从任务管理器或活动监视器终止sqlserver.exe(如果您有Mac)。