1
我想在每次運行單元測試時創建數據庫快照併爲其恢復數據庫。我能夠創建快照,但在恢復時,我會在執行操作時遇到以下錯誤。無法將數據庫恢復到SQL Server中的快照
消息5070,級別16,狀態2,第1行,而其他用戶正在使用的數據庫
數據庫狀態不能改變 'IMPORTDATA'消息3013,級別16,狀態1,行
RESTORE DATABASE正在異常終止。
下面列出了用於創建數據庫並將其恢復到快照的SQL查詢。
創建快照:
CREATE DATABASE Data_SShot
ON (NAME=Data,
FILENAME='C:\Snapshot\DataSnapshot.ss'),
(NAME=Data_Data1,
FILENAME='C:\Snapshot\Data1Snapshot.ss'),
(NAME=Data_Index1,
FILENAME='C:\Snapshot\DataIndexSnapshot.ss')
AS SNAPSHOT OF Data
恢復到快照
use master
go
RESTORE DATABASE Data
FROM DATABASE_SNAPSHOT = 'Data_SShot'
它指出
數據庫狀態不能改變,而其他用戶正在使用的數據庫
如何解決這個問題?我正在使用.NET(C#)來執行此操作。如何關閉連接以成功運行RESTORE DATABASE
?
我希望整個創建快照和恢復數據庫的過程稍後發生在測試套件中的每個測試中。
[This SO post](http://stackoverflow.com/questions/7197574/script-to-kill-all-connections-to-a-database-more-than-restricted-user-rollback)去幫忙, 我認爲。 – DHN
您需要首先使數據庫脫機。 – user1666620