目前我正在試圖通過下面的代碼可靠地通過C#下降SQL Server 2008的數據庫
using Microsoft.SqlServer.Management.Smo;
var server = new Server(Server);
server.KillAllProcesses("Db");
server.KillDatabase("Db");
有時工作到刪除數據庫,但其他人我得到以下異常:
Microsoft.SqlServer.Management.Smo.FailedOperationException:殺死數據庫服務器'Host1'失敗。
---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:執行Transact-SQL語句或批處理時發生異常。
---> System.Data.SqlClient.SqlException:此時無法更改數據庫'Db'的狀態或選項。數據庫處於單用戶模式,並且當前用戶已連接到該用戶。
有關如何通過代碼可靠地刪除數據庫的任何想法?
你嘗試' ALTER DATABASE Db SET MULTI_USER;'第一個? –
就我個人而言,我不會爲此使用SMO,主要是因爲我不確切知道那些'Kill ...()'函數的功能。我寧願說'USE master; ALTER DATABASE Db SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE Db;' –
默認情況下數據庫沒有設置爲SingleUser,我認爲KillDatabase方法失敗的嘗試將它變成單用戶,然後像這樣離開它。 – Konstantinos