将 SQL Server 数据库备份还原到 root 以外的其他目录

Tom*_*han 4 sql-server-2008 sql-server

我有一个数据库备份文件 ( db.bak),我想在我的 SQL Server 2008 R2 实例中恢复和导入它。但是,数据库占用了大约 1 GB 的空间,而我的 C: 分区目前非常紧张 - 我没有那么多空间了。(是的,我知道这很糟糕,但目前我无能为力……)

我的 D:\ 分区上确实有一些空间 - 我可以以某种方式恢复备份并使用 D:\ 上的位置吗?如果是这样,如何?

Tho*_*ger 7

restore database YourDatabase
from disk = 'C:\db.bak'
with 
    move 'YourDataFile' to 'D:\YourNewDir\YourNewDataFileName.mdf',
    move 'YourLogFile' to 'D:\YourNewDir\YourNewLogFileName.ldf'
Run Code Online (Sandbox Code Playgroud)

上面的命令将恢复您的数据库,但根据您的规格将数据库文件移动到不同的位置。要获得备份中包含的数据库文件的列表(我只是用的逻辑名称YourDataFileYourLogFile),可以运行下面的命令:

restore filelistonly
from disk = 'C:\db.bak'
Run Code Online (Sandbox Code Playgroud)

如果您想通过 GUI 执行此操作,则在“还原数据库”对话框中,您可以单击左侧的“文件”项,您将看到列出的数据库文件。这些文件名旁边有省略号按钮,您可以单击它来更改路径。同样,您只需双击具有文件名本身的文本框并更改它以反映新路径。下面是我解释的截图:

在此处输入图片说明