我想在每次运行单元测试时创建一个数据库快照并将数据库恢复到它。我可以创建快照,但在还原它时,我在执行此操作时遇到以下错误。
消息 5070,级别 16,状态 2,第 1
行当其他用户正在使用数据库“ImportData”时,无法更改数据库状态消息 3013,级别 16,状态 1,第 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
成功运行?
我希望创建快照并将数据库恢复到它的整个过程在测试套件中的每个测试中发生。