我使用DataContextand創建了一個.mdf數據庫。然後我從PC手動刪除數據庫文件。 現在我無法使用DataContextInstance.CreateDatabase();
創建具有相同名稱和路徑的數據庫,因爲某處數據庫仍然存在,並且使用DataContextInstance.DeleteDatabase();
將不起作用。這就是爲什麼我需要master數據庫來刪除數據庫。如何創建master數據庫?
如何創建主數據庫並刪除我的「myDBname」數據庫?
我使用DataContextand創建了一個.mdf數據庫。然後我從PC手動刪除數據庫文件。 現在我無法使用DataContextInstance.CreateDatabase();
創建具有相同名稱和路徑的數據庫,因爲某處數據庫仍然存在,並且使用DataContextInstance.DeleteDatabase();
將不起作用。這就是爲什麼我需要master數據庫來刪除數據庫。如何創建master數據庫?
如何創建主數據庫並刪除我的「myDBname」數據庫?
所以SQL Server Management Studio中或服務器資源管理器 ... 添加新連接 + 選擇主數據庫,新的查詢和DROP DATABASE yourDB。
我想通過代碼來完成,而不是手動執行 – remi 2012-02-07 13:43:00
master數據庫已經存在,所以不需要恢復它。您可以使用ADO.NET提供程序API刪除數據庫。
using(SqlConnection cn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=master;Integrated Security=True"))
{
using(SqlCommand cmd = new SqlCommand("drop database yourdbName", cn))
{
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
編輯:
using(SqlCommand cmd = new SqlCommand("drop database [07-02-2012]", cn))
{..}
您需要更改連接字符串,並使用DataContext.DeleteDatabase()
方法。
string cnstr = @"Data Source=.\SQLEXPRESS;AttachDbFileName=c:\file.mdf;Integrated Security=true";
MyDbContext dx = new MyDbContext(cnstr);
if (dx.DatabaseExists())
{
dx.DeleteDatabase();
}
感謝您的回覆。我試過這段代碼,但在「cmd.ExecuteNonQuery();」引發異常行說「07附近的語法錯誤」。「我的數據庫名稱是「07-02-2012」,所以我用它來代替「empdb」。你知道爲什麼嗎? – remi 2012-02-07 13:55:36
@remi - 試試Drop Database [07-02-2012] – adatapost 2012-02-07 13:56:43
謝謝,解決了語法問題。現在,它會在同一行中拋出異常,說「不能刪除數據庫'07-02-2012',因爲它不存在或者您沒有權限。」 – remi 2012-02-07 13:59:48
希望這將幫助你.. http://stackoverflow.com/questions/7775409/database-already-exist-choose-a-different-name-using-createdatabase – 2012-02-07 13:36:58
我看到它但沒有解釋如何做到這一點.. – remi 2012-02-07 13:39:23
你有SQL服務器manazment工作室嗎? – 2012-02-07 13:41:09