データベース スナップショットを作成し、単体テストを実行するたびにデータベースを復元したいと考えています。スナップショットを作成できますが、復元中に以下のエラーが発生します。
メッセージ 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
正常に実行するために接続を閉じる方法は?
スナップショットを作成し、後で DB を元に戻すこのプロセス全体を、テスト スイートの各テストで実行したいと考えています。