You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何切换至master数据库后执行DROP DATABASE仍提示‘数据库正在使用’?

解决SQL Server删除并重建数据库时的冲突问题

执行以下SQL代码时:

USE master;
GO

DROP DATABASE IF EXISTS XyzCompany;

CREATE DATABASE XyzCompany;
GO

USE XyzCompany;
GO

会遇到两个连续错误:

  1. 执行DROP DATABASE IF EXISTS XyzCompany时,报错:Msg 3702:无法删除数据库 "XyzCompany",因为它正在使用中
  2. 后续执行CREATE DATABASE XyzCompany时,报错:Msg 1801:数据库 'XyzCompany' 已存在,请选择其他数据库名称

解决方案

在删除数据库前,先强制断开目标数据库的所有活动连接,确保数据库处于可删除状态:

USE master;
GO

-- 强制断开XyzCompany的所有连接并回滚未提交事务
ALTER DATABASE XyzCompany SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

DROP DATABASE IF EXISTS XyzCompany;
GO

CREATE DATABASE XyzCompany;
GO

USE XyzCompany;
GO

说明

ALTER DATABASE XyzCompany SET SINGLE_USER WITH ROLLBACK IMMEDIATE会立即终止目标数据库的所有会话,回滚所有未完成的事务,让数据库切换到单用户模式,此时就能顺利执行删除操作,后续创建数据库也不会出现已存在的提示。

内容的提问来源于stack exchange,提问作者Tim Kruger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:54:52