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

如何通过Transact-SQL查询获取SQL Server服务器的默认数据库名称

问题说明

最初需求是在满足特定条件时执行DROP DATABASE MyDB语句,遇到如下报错:

Database 'MyDB' is still in use

找到的可行方案是执行如下语句:

USE master 
DROP DATABASE MyDB

该方案可正常运行,但无法确认当前服务器的默认数据库一定是master,想要了解如何查询对应服务器的默认数据库名称,以便编写如下格式的语句:

USE Default_DB 
DROP DATABASE MyDB
解决方法

查询当前登录账号的默认数据库

SQL Server环境下执行以下语句即可查询:

SELECT DEFAULT_DATABASE_NAME 
FROM sys.server_principals 
WHERE name = SUSER_SNAME()

返回的查询结果就是当前登录账号对应的默认数据库名称。

更稳妥的删库写法

实际上你完全不需要依赖默认数据库配置,直接强制切换到master库同时提前切断目标库的活跃连接即可,不会受默认库配置影响,适配所有场景:

-- 强制切换到master系统库,无需关心当前默认数据库是什么
USE master
GO
-- 强制切断MyDB的所有活跃连接,避免占用报错
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
-- 执行删库操作
DROP DATABASE MyDB
GO

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:54:00