无法删除 SQL Server 2012 中的数据库

Unable to drop database in SQL Server 2012

我之前创建了一个示例数据库,现在我想删除该数据库,但它没有被删除。我在网上搜索但没有找到任何有效的解决方案。

使用 T-SQL,我试过:

USE [Sample]

ALTER DATABASE [Sample]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

DROP DATABASE [Sample]

使用 GUI,出现以下错误:

我关闭了现有连接然后也发生了这种情况,这是我的本地计算机。请帮帮我!

使用此代码:

USE MASTER 
GO

ALTER DATABASE Sample 
SET multi_user WITH ROLLBACK IMMEDIATE
GO


ALTER DATABASE Sample
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

DROP DATABASE Sample
GO

关闭您的 SSMS,打开一个新实例,然后尝试以下操作,将整个内容复制粘贴到一个新查询中 window 并立即执行:

USE [master];            
GO

ALTER DATABASE [Sample]   --<-- go back into Multi-user mode
SET MULTI_USER;
GO

ALTER DATABASE [Sample]   --<-- Will disconnect everyone 1st
SET SINGLE_USER              -- and will leave the database in single user mode
WITH ROLLBACK IMMEDIATE;
GO

USE [Sample];                -- quickly grab that single connection before any 
GO                           -- other process does

USE [master];                -- Connect to master db,  connection
GO                           -- This also means disconnect Sample DB 

DROP DATABASE [Sample]       -- At this point there should be no active connections
GO                           -- to this database and can be dropped 

另一种删除数据库的方法(无需编码)

  • 在 Microsoft SQL Server Management Studio 中,右键单击要删除的数据库(在您的情况下为示例数据库),然后单击 Select Properties.
  • Select“选项”页面。
  • 其他选项下,找到'下的'限制用户'选项'.
  • 将其值 MULTI_USER 更改为 SINGLE_USER
  • 然后按确定并重试(或再次右键单击数据库并单击删除

使用此代码应该有所帮助。

ALTER DATABASE [dbname]
SET SINGLE_USER --or RESTRICTED_USER
WITH ROLLBACK IMMEDIATE;
GO
DROP DATABASE [dbname];
GO