0

ac# ベースのテスト ハーネスで使用されるデータベースを復元しています。テストの実行ごとに復元され、個々のテストの後に復元されることもあります。

新しいクエリを試行すると、復元後にデータベースが失敗することがあり、断続的なエラーが発生します。

最初にオフラインに設定しています:

using (SqlConnection conn = new SqlConnection(GetConnectionString("MasterDatabase")))
        using (SqlCommand cmd = new SqlCommand(@"ALTER DATABASE MYDB SET OFFLINE WITH ROLLBACK IMMEDIATE", conn))
        {
            conn.Open();
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
            cmd.Dispose();
        }

そして復元します:

 using (SqlConnection conn = new SqlConnection(GetConnectionString("MasterDatabase")))
        using (SqlCommand cmd = new SqlCommand(@"Restore Database MYDB
                FROM Disk = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\MYDB.bak'
                WITH REPLACE, MOVE 'MYDB_Dat' TO 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MYDB.mdf',
                MOVE 'MYDB_Log' TO 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MYDB.ldf'", conn))
        {
            conn.Open();
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
            cmd.Dispose();
        }

それ以降のデータベース呼び出しは断続的に失敗します。

4

0 に答える 0