2012-11-05 71 views
1

我想刪除sql server數據庫。如果它未被使用,它將被刪除。如果數據庫正在使用中,發生異常,說can not delete database while it is in use。 我們可以使用選項Close existing connection從管理工作室刪除使用數據庫。 但我們如何使用C#代碼來做到這一點?如何使用C#在「使用中」時刪除SQl服務器數據庫?

+0

這可能對你有用:http://stackoverflow.com/questions/1145892/how-to-force-a-sqlconnection-to-physically-close-while-using-connection-pooling? –

回答

2

一個MS SQL Server上的簡單的方法來踢所有用戶關閉是:

ALTER DATABASE [MyDB] SET Single_User WITH Rollback Immediate 
GO 

消防此查詢通過您的代碼,並繼續: -

SOURCE:-

+0

「通過你的代碼解決這個問題並繼續:」是Pranav它爲我工作......我太高興了。感謝你的幫助 –

+0

@ KashifR-我很高興幫助.. :) – Pranav

3
ALTER DATABASE AdventureWorks2012 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 

DROP DATABASE AdventureWorks2012; 

製作通過編寫上面的查詢腳本文件。然後執行以下腳本文件:

string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True"; 
      FileInfo file = new FileInfo("C:\\myscript.sql"); 
      string script = file.OpenText().ReadToEnd(); 
      SqlConnection conn = new SqlConnection(sqlConnectionString); 
      Server server = new Server(new ServerConnection(conn)); 
      server.ConnectionContext.ExecuteNonQuery(script); 
+0

爲什麼你需要爲此創建單獨的.SQL,您可以通過在字符串本身中編寫查詢來執行它。:):P – Pranav

+0

有2個命令,Alter&drop。 – 2012-11-05 07:54:32

+0

Wajid Ali先生感謝Ur幫助,它解決了我的2天問題,對我來說工作得很好。再次感謝.......我只是試圖設置數據庫脫機,但它不工作..... 「隨着角色立刻回來」,它已經爲你所建議的我工作了,再次感謝。 –

相關問題