web-dev-qa-db-ja.com

SSMSを使用したデータベースの復元で、ソースデータベースが復元状態のままになる

SQL Server 2016(Developer Edition)を使用していて、サーバーインスタンスにデータベースのコピーを作成したいと考えています。簡単なバックアップを行ってから、データベースをもう一度右クリックして復元しました->タスク->復元。

データベースの名前を変更することにより、データベースは実際に新しく作成されたデータベースに復元されます。ここまでは順調ですね。ただし、元のデータベース、および復元を開始した場所には、(復元中...)状態があり、通常の方法では変更できません。

もちろん、この問題を発生させずにデータベースを別の方法で復元する方法を知っており、元のデータベースを再び動作させていますが、私の質問は次のとおりです。

これは正常な動作ですか?バグに遭遇したと思います。

7
Frank

これは、[復元前にログ末尾のバックアップを取る]ボックスと[ソースデータベースを復元状態のままにする]ボックスをオンにした場合のSSMSの「通常の」動作です。

直感的ではない場合があり、デフォルトでこれらのボックスをチェックするのはおそらく最善の決定ではありませんが、その動作を回避するには、「ソースデータベースを復元状態にしておく」ボックスをオフにする必要があります。

enter image description here

つまり、バグではなく、最近のバージョンで変更された標準のSSMS動作です(これらのオプションは2012年に登場したと思いますが、よくわかりません)。

SSMSでの奇妙な動作やバグの多い動作を回避したい場合は、T-SQLスクリプトを使用して復元を実行し、SSMSのバージョンを変更した場合でも再現可能なものを使用することをお勧めします。

これを参照してください アイテムを接続 これは設計によるものであることを明確に示しています。