如何永久更改MSSQL存储数据库信息的位置?

使用SQL Server 2005的SQL Serverpipe理控制台我们去

Server Properties --> Database Settings --> change database default location from c:\blah\blah to E:\MSSQL\DATA 

我们重新启动服务器,至less在理论上它应该将所有新数据库存储在该目录中。

到目前为止,一切正常,但是当我们恢复第一个databasename.bak文件时,它将信息存储在C:\ Program Files \ blah \ blah \ data目录中。

任何想法如何使这永久的恢复数据库?

数据库.bak文件包含有关备份的数据库在哪里保存其mdf和ldf文件的信息。 我的猜测是,它是这样devise的,使恢复超级简单。 要将备份恢复到不同的位置(即所需的新位置),您需要使用一些稍微高级的function:

  • 使用SQL Server Management Studio (请参阅步骤11)

  • 使用Transact-SQL

您设置的服务器默认值仅控制新数据库所在的默认位置。 您需要在RESTORE操作中告诉SQL文件的新位置。 如果使用GUI,则切换到恢复数据库对话框的选项页面,并为每个文件指定一个新path。 如果使用查询窗口,请使用RESTORE FILELISTONLY获取文件列表,然后使用该信息将RESTORE DATABASE … WITH MOVE …恢复到所选位置的数据库。

恢复名为“我的”数据库

 RESTORE DATABASE mine FROM DISK = 'c:\mine.bak' WITH MOVE 'mine' TO 'c:\vol\newlocation\mine.mdf', MOVE 'mine_log' TO 'c:\vol\newlocation\mine_log.ldf' 

我相信备份的数据库默认会恢复到备份时的位置。 所以如果你想改变这个,你可以在数据库进入新的位置时备份数据库。

否则,你可以看看:

 HKLM\Software\Microsoft\Microsoft SQL Server\[instance name]\SQLDataRoot 

并确保这是正确的道路。

转到对象资源pipe理器。 右键单击数据库服务器并select“属性”。 转到左侧的“数据库设置”并更改数据库默认位置。

注意:这仅适用于您进行更改的特定数据库服务器。

在这里输入图像说明