创建数据库错误:无法创建文件

时间:2011-05-18 08:25:50

标签: sql-server sql-server-2005 sql-server-2008 sql-server-2000

我有一个安装程序,作为安装的一部分创建一个SQL Server 2000(及以上)数据库。

有些用户更改了数据库服务器,分离数据库......并想重新安装。

如果文件存在于默认位置,则会出现以下错误:

  

无法创建文件'C:\ Program   Files \ Microsoft SQL   服务器... \ DATA \ mydatabase.mdf”   因为它已经存在。

我可以先检查默认路径并删除文件来解决这个问题。 但是,当用户安装到远程SQL Server时,我该怎么做?

我正在寻找类似的东西:

CREATE DATABASE mydatabase WITH OVERWRITE

编辑:

删除数据库不是解决方案。数据库不存在但文件仍然存在。

4 个答案:

答案 0 :(得分:3)

之所以会这样,是因为有人可能已经重命名了您的数据库。.但是,后面的.mdf文件被命名为首次创建数据库。 您可以从以下命令检查数据库名称及其对应的.mdf文件:

SELECT * FROM sys.sysdatabases

答案 1 :(得分:1)

您可以测试数据库是否存在sys.sysdatabase,如下所示

IF EXISTS (SELECT * FROM sys.sysdatabases WHERE NAME = 'mydatabase')
BEGIN 
   DROP DATABASE mydatabase
END

如果要测试特定文件是否已附加到sql server,则还可以使用系统视图sys.sysdatabases,因为它包含包含所有数据库的mdf文件的“filename”属性。

如果文件附加到不同的数据库,我认为只是覆盖它听起来有风险,您应该删除附加到该文件的数据库。删除数据库将删除基础文件。

如果文件存在但未连接到sql server,则应该删除一次,并确保drop正在删除后续删除时的文件。

答案 2 :(得分:0)

现在是2018年,Life和Windows已经发生了变化。

所以我们需要一个新程序来摆脱MDF文件

  • 数据库不在Microsoft SQL Server中。
  • 尝试以编程方式删除它不会删除文件,因为数据库不存在
  • 无法在文件资源管理器中删除MDF,因为"它已被SQL Server"
  • 使用
  • 我尝试使用Management Studio恢复数据库,然后将其删除为TajMahals建议的,唉它没有用。

删除文件的正确方法是停止SQL服务器,使用文件资源管理器删除文件,然后再次启动服务器。

请参阅Start, Stop, Pause, Resume, Restart SQL Server Services

  • 使用文件资源管理器转到文件夹** C:\ Windows \ SysWOW64 **
  • 查找文件 SQLServerManager13.msc 根据您的版本,数字13可能会有所不同
  • 启动程序
  • 在左侧窗格中选择 Sql Server服务
  • 在右侧窗格中,您将看到SQL Server,可能还有代理和浏览器
  • 按以下顺序停止它们:浏览器,代理,服务器。通过右键单击要停止的项目并选择停止
  • 来执行此操作
  • 使用文件资源管理器删除导致问题的MDF文件
  • 按相反顺序启动服务

你已经完成了

答案 3 :(得分:-1)

我使用SQL Management Studio

  

对象探索>选择实例>右键单击DataBase Folder>还原数据库

在“来源”部分,选择"设备"然后选择要消除的.mdf文件(选择扩展名为。* All File)

因此,您使用旧的MDF文件获得了新数据库。

然后以正确的方式放下它.mdf将消失。

欢呼声。