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 步骤。

因此,您的 RESTORE 命令与您使用的命令相同,只是您可以排除 REPLACE 选项。您可以在 MOVE 选项中指定目标文件信息。

于 2010-08-02T17:35:19.223 回答