0

新しいデータベースを作成し、バックアップからデータを取り込むには、通常、次のようにします。

CREATE DATABASE MyDatabase -- I create an empty database

-- I retrieve the filepath of mdf and ldf files
DECLARE @FileData varchar(1000)
DECLARE @FileLog varchar(1000)

set @FileData = (select filename from MyDatabase.dbo.sysfiles where fileid = 1)
set @FileLog = (select filename from MyDatabase.dbo.sysfiles where fileid = 2)

-- I Restore the database from backup by substituting the mdf and ldf files
RESTORE DATABASE MyDatabase
FROM DISK = 'c:\Test\Test.bak'
WITH REPLACE,
MOVE 'MyApp_Data' TO  @FileData, -- I forced the name to be MyApp_Data for simplicity
MOVE 'MyApp_Log' TO  @FileLog    -- I forced the name to be MyApp_Log for simplicity

ファイルストリームデータに対しても同じことを行う方法は?ファイルストリームデータのフォルダを強制的に作成できますか、それとも手動で作成する必要がありますか?

私のアプローチについてもコメントしていただけますか?

4

1 に答える 1

2

ファイルストリームデータでもMOVEオプションを使用できると思います。次のコマンドを実行して、バックアップファイルのファイルリストを表示できます。これは、ファイルストリームファイルの識別に役立ちます。

RESTORE FILELISTONLY
FROM DISK = 'c:\Test\Test.bak'

全体的なアプローチとしては、必要以上のことをしているのではないかと思います。データベースにバックアップを復元する前に、データベースを作成する必要はありません。RESTOREコマンドは、DBの作成ステップを処理します。

したがって、REPLACEオプションを除外できることを除いて、RESTOREコマンドは使用するコマンドと同じになります。MOVEオプションで宛先ファイル情報を指定できます。

于 2010-08-02T17:35:19.223 に答える