如何在SQL Server 2008中删除mdf和ldf文件?

时间:2013-01-27 07:11:36

标签: sql sql-server-2008

我有这段代码:

IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name='MyDatabase')
begin
   DROP database MyDatabase
end
Go

CREATE DATABASE MyDatabase

但是在执行此查询后我看到了这个错误:

  

无法创建文件'C:\ Program Files \ Microsoft SQL Server \ MSSQL10.FARASQL \ MSSQL \ DATA \ MyDatabase.mdf'

2 个答案:

答案 0 :(得分:5)

当您尝试DROP时,您的数据库很可能处于离线状态。在这种情况下,SQL Server将db文件留在文件系统上。这是故意的行为。

根据DROP DATABASE (Transact-SQL)

  

删除数据库会从SQL实例中删除数据库   服务器并删除数据库使用的物理磁盘文件。 如果   删除时,数据库或其任何一个文件都处于脱机状态,   磁盘文件不会被删除。这些文件可以手动删除   使用Windows资源管理器。

答案 1 :(得分:2)

删除数据库只是为了让它脱机。您需要手动删除mdf和ldf文件(see here如何找到它们);然后参考这张图片:

之后,您可以重新创建数据库。