sqlserver數據庫脫機時發生異常,如下:
===================================
設置脫機 對於 數據庫“SMS”失敗。 (Microsoft.SqlServer.Smo)
------------------------------ 有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2500.0+((KJ_PCU_Main).110617-0038+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=設置脫機+Database&LinkId=20476
------------------------------ 程序位置:
在 Microsoft.SqlServer.Management.Smo.Database.SetOfflineImpl(Boolean offline) 在 Microsoft.SqlServer.Management.Smo.Database.SetOffline() 在 Microsoft.SqlServer.Management.SqlManagerUI.DatabaseOffline.DatabaseOfflineAction.DoAction(ProgressItemCollection actions, Int32 index) 在 Microsoft.SqlServer.Management.SqlStudio.Controls.ProgressItemCollection.DoWorkOnThread()
===================================
執行 Transact-SQL 語句或批處理時發生了異常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------ 程序位置:
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType) 在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries) 在 Microsoft.SqlServer.Management.Smo.Database.SetOfflineImpl(Boolean offline)
===================================
由於無法在數據庫 'SMS' 上放置鎖,ALTER DATABASE 失敗。請稍后再試。 ALTER DATABASE 語句失敗。 (.Net SqlClient Data Provider)
------------------------------ 有關幫助信息,請單擊: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2550&EvtSrc=MSSQLServer&EvtID=5061&LinkId=20476
------------------------------ 服務器名稱: (local) 錯誤號: 5061 嚴重性: 16 狀態: 1 行號: 1
------------------------------ 程序位置:
在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
解決辦法:
通過如下指令,獲取當前DB的Session,然后將對應的SPID Kill掉,之后再執行ALTER DATABASE 語句。
EXEC sp_who2;
KILL <SPID>;