4

我有这个代码:

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”

4

2 回答 2

7

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

根据DROP DATABASE (Transact-SQL)

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

于 2013-01-27T07:18:54.753 回答
3

删除数据库只是使其脱机。您需要手动删除 mdf 和 ldf 文件(请参阅此处了解如何找到它们);然后参考这张图片:

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

于 2015-06-23T01:52:14.417 回答