5

我有一個安裝程序,作爲安裝的一部分創建一個SQL Server 2000(和更高版本)數據庫。創建數據庫錯誤:無法創建文件

有些用戶更改數據庫服務器,分離數據庫...並且想要重新安裝。

如果該文件在默認位置我碰到下面的錯誤存在:

Cannot create file 'C:\Program Files\Microsoft SQL Server...\DATA\mydatabase.mdf' because it already exists.

我可以首先檢查默認的路徑和刪除文件的解決這個問題。 但是我怎麼能在用戶安裝到遠程SQL Server時執行此操作?

我在尋找類似:

CREATE DATABASE mydatabase WITH OVERWRITE 

編輯:

DROP DATABASE是解決不了問題。數據庫不存在,但文件仍然存在。

回答

1

如果數據庫sys.sysdatabase存在這樣

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

如果你想測試一個特定的文件附加到SQL Server已經,您還可以使用系統視圖SYS你可以測試。 sysdatabases,因爲它包含包含所有數據庫的mdf文件的'filename'屬性。

如果文件附加到不同的數據庫,我認爲覆蓋該文件聽起來有風險,您應該刪除附加到該文件的數據庫。刪除數據庫將刪除底層文件。

如果文件存在但沒有連接到sql服務器,您應該刪除一次,並確保刪除文件在後續刪除時刪除文件。

+3

數據庫不存在,但文件仍然存在! – WilfriedVS 2011-05-18 08:36:02

+0

好的,那是另一個問題:)但如果文件存在沒有被連接到SQL服務器實例不會更清潔,讓安裝程序執行刪除? - 如果它們存在但被附加到另一個分區,則可能不想覆蓋它們。 – faester 2011-05-18 08:36:38

+0

這就是這樣的想法:如果安裝程序在本地機器上運行,我可以在創建數據庫之前刪除這些文件。但是,當用戶安裝到遠程sql服務器時,我該怎麼做? – WilfriedVS 2011-05-18 08:49:53

-1

我使用SQL Management Studio中

Object Explore > choose instance > Right click at DataBase Folder > Restore Database

在源部分,選擇 「設備」,然後選擇你想消除.mdf文件(擴展名選擇的。*所有文件)

所以,你用舊的MDF文件獲得了新的數據庫。

然後以正確的方式放下它,.mdf將消失。

歡呼聲。

0

現在是2018年,生活和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文件的項目,並就大功告成了