2010-03-19 52 views
0

我試圖從.NET代碼中刪除SQL Server數據庫。我試過使用SMO類,但得到一個異常說數據庫正在使用。如何以編程方式從.NET代碼中刪除SQL Server數據庫

然後我試圖執行一個查詢(打開一個SqlConnection,執行一個SqlCommand),沿着線:

ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

(暫停)

DROP DATABASE foo 

但我仍然得到一個異常話說,數據庫正在使用中。

我該怎麼做? (或者,SQL Server Management Studio如何實現Drop數據庫並關閉現有連接?)

回答

5

你需要確保你從主數據庫這樣做:

USE master 
GO 

ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 

DROP DATABASE foo 
GO 

應該工作。順便說一下,SQL Server Management Studio允許您查看它爲GUI中的所有命令生成的腳本。例如,在「刪除」窗口中,頂部有一個「腳本」菜單項,它會顯示您可以使用的腳本。

3

這可能是一個愚蠢的問題,但是在連接字符串中,您是否連接到要刪除的數據庫,或者到同一臺服務器上的主數據庫?如果您試圖刪除您主動連接的數據庫,它肯定會解釋錯誤。

此外,請記住,ADO.NET保持連接使用connection pooling打開。因此,即使您沒有使用給定的連接字符串主動運行查詢,連接仍可能處於打開狀態。

+0

謝謝 - 是的,我是愚蠢的,並有我想在我的連接字符串中刪除的數據庫! –

相關問題