2009-11-04 30 views
2

我需要使用SMO從.NET執行數據庫還原。在還原之前,我將數據庫設置爲RESTRICTED_USER WITH ROLLBACK IMMEDIATE模式。這在測試/調試期間工作正常 - 所有用戶都被丟棄。然而,當這個代碼運行在晚上進行自動化過程的一部分,有時我得到以下異常:SQL Server:使用ROLLBACK IMMEDIATE將數據庫模式設置爲RESTRICTED_USER並不總是會丟棄所有連接

Microsoft.SqlServer.Management.Common.ExecutionFailureException:發生異常時執行Transact-SQL語句或批量。 ---> System.Data.SqlClient.SqlException:由於數據庫正在使用,無法獲得獨佔訪問。 RESTORE DATABASE異常終止

這裏發生了什麼?謝謝!

回答

3

你不行;

alter database <db_name> set single_user with rollback immediate 

然後在備份後添加另一個TSQL步:

alter database <db_name> set multi_user 

另外,找出可能會發生,因爲這是在夜間運行,不知何故捕捉

EXEC sp_who2 
結果

這會告訴你當時連接的人。

相關問題