如何在SQL Server 2008中强制删除数据库


68

我试图强制删除数据库,但是删除数据库后,当我尝试重新创建数据库时,出现了错误

无法创建文件C:\ Program Files ..... [数据库名称] .mdf,因为它已经存在

这是我的强制删除数据库的查询

Use master;
ALTER database [databasename] set offline with ROLLBACK IMMEDIATE;
DROP database [databasename];

我了解到,以上查询正在删除数据库,但并未删除.ldf.mdf文件。如何彻底删除数据库?

普通查询

Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's.

如何强制删除数据库,该数据库也会删除.mdf.ldf文件?

Answers:


116

这是预期的并有记录的行为

删除数据库将从SQL Server实例中删除该数据库,并删除该数据库使用的物理磁盘文件。如果数据库或其任何文件在删除时处于脱机状态,则不会删除磁盘文件。可以使用Windows资源管理器手动删除这些文件。若要从当前服务器中删除数据库而不从文件系统中删除文件,请使用sp_detach_db。

那么,为什么首先要使数据库脱机?只需将其设置为SINGLE_USER模式,然后按照SQL Server联机丛书中的说明将其删除。-

USE master;
ALTER DATABASE [databasename] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [databasename] ;

注意,数据库备份不会作为上述过程的一部分被删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.