SQL Server 2008 R2では、SQL Server Management Studioでサーバーを右クリックして設定することにより、場所Data
とLog
場所を設定しました。F:\moved\
ただし、それを使用してデータベースを復元すると、デフォルトのSQLServerの場所であると思われるsqlcmd
データベースが復元されます。E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
F:\moved\
ストレージの目的でデータベースを常に復元する必要がありますが、スクリプトで次のコマンドを使用すると、エラーが発生することがあります。
RESTORE DATABASE $(database) FROM DISK = '$(root)\$(database).bak' WITH RECOVERY,
MOVE '$(database)' TO '$(datadir)$(database).mdf',
MOVE '$(database)_log' TO '$(datadir)$(database).ldf'
GO
エラー:
データベースコンテキストを「master」に変更しました。
メッセージ3234、レベル16、状態2、サーバーSQL1、行3
論理ファイル「userdb1」はデータベース「userdb1」の一部ではありません。RESTORE FILELISTONLYを使用して、論理ファイル名をリストします。
メッセージ3013、レベル16、状態1、サーバーSQL1、行3RESTOREDATABASE
が異常終了しています。
エラーを回避するために上記のように手動で指定しなくても、デフォルトでsqlcmd
強制的に復元できますか?F:\moved\