删除数据库后,SQL Server不会删除所有数据库文件吗?

时间:2020-01-10 18:43:37

标签: sql-server database

我使用带有镜像mcr.microsoft.com/mssql/server:latest的Docker运行SQL Server。

我的问题是,如果我按如下方式删除数据库:

ALTER DATABASE [ZapDB] SET OFFLINE WITH ROLLBACK IMMEDIATE;
DROP DATABASE [ZapDB];

然后文件保留在SQL Server的文件系统中,这将阻止创建具有相同名称的新数据库:

System.Exception:无法为类型“ ZapProxyServer.Startup”上的方法“配置”的参数“ zapDbContext”解析类型为“ ZapProxyServer.Services.ZapDbContext”的服务。

Microsoft.Data.SqlClient.SqlException(0x80131904):无法创建文件'/var/opt/mssql/data/ZapDB.mdf',因为它已经存在。更改文件路径或文件名,然后重试该操作。

创建数据库失败。列出的某些文件名无法创建。检查相关错误。

如何告诉SQL Server从文件系统中清除数据库,以便其所有痕迹都消失了?否则,我必须手动删除这些文件...

1 个答案:

答案 0 :(得分:3)

将数据库设置为脱机状态后,SQL Server不再访问文件。

与其将数据库设置为脱机,还不如将其切换为单用户模式,然后丢弃。