web-dev-qa-db-ja.com

上書きできません。データベースで使用されています

RESTORE DATABASE Tes
FROM DISK = '{7522204E-0256-47B3-9864-137D6D1FD449}6' 
WITH MOVE 'Test' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\Tes.mdf',
MOVE 'Test_log' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\Tes.ldf'

上記の復元コマンドは新しいデータベースでは問題なく機能しますが、古いデータベースではいくつかのようなエラーが表示されます

ファイル「C:\ Program Files(x86)\ Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\db1.mdf」は上書きできません。データベース「windb」で使用されています。メッセージ3156、レベル16、状態4、行1ファイル「windb」を「C:\ Program Files(x86)\ Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\db1.mdf」に復元できません。 WITH MOVEを使用して、ファイルの有効な場所を特定します

この問題を持つ複数のndfファイルを持つdbsのみが見つかりました。

この問題の解決策はありますか?

6
sreejesh

Restore DatabaseWizardからデータベースを復元してみてください。そのためには、オブジェクトエクスプローラーで、データベースを右クリックします->データベースの復元を選択します。 ..表示されたウィンドウで、SourceおよびDestination。そして、左側のペインで、使用しているSSMSのバージョンに応じて、OptionsまたはFilesを選択します。

表示されるテーブルで、列Restore Asを見つけます。各行に、表示される名前ではなく、新しいファイル名を入力します。たとえば、あなたのケースでは、ファイル名が<Folder Path>\DATA\Tes.mdf<Folder Path>\DATA\Tes.ldfのようなものとして表示されている可能性があります。 Tes以外の別の名前を付けます。 (DATAフォルダーにまだ存在していない名前)。

注:ファイル名はデータベース名とは関係ありませんが、バックアップまたは検索する必要がある場合に備えて、後で簡単に参照して意味のある名前を付けることができます。ファイル。

7
Curiousity

データベースを新しい場所に移動する場合は、ソースデータベースをデタッチするか、最初にオフラインにすることをお勧めします

0
Eralper