SQL Drop View语句需要永远完成

时间:2011-11-03 17:06:35

标签: sql ddl

我有一个SQL Server 2008 R2 Enterprise数据库,其上有一个名为vw_Users的视图。

- 运行(从vw_users中选择*)只需不到一秒钟即可完成。

- 在视图中运行SQL只需不到一秒钟即可完成。

- 运行(drop view vw_Users)只是挂起而从未实际完成。在我取消之前,我让它运行了大约10分钟。

我重新启动了SQL Server代理,然后再次尝试,但它仍在发生。

这是一个全新的问题,这个服务器和这个数据库已经运行了一年多。

视图上没有索引。我不确定问题是什么,但任何帮助都会非常感激。

由于

1 个答案:

答案 0 :(得分:17)

某人或某些人有一个开放的连接访问该视图而您正被阻止。

您可以通过启动DROP,然后在运行SSMS的另一个窗口中来检查:

sp_who2 active

您应该在spid中看到一行,blocked_by字段中会有另一个spid编号。找到spid以查看阻止你的内容。

如果可以安全终止,可以手动关闭流程,也可以从SSMS运行中关闭流程:

kill x

...其中x是阻止过程的spid。