附加位于桌面上的.mdf文件?

时间:2010-09-20 13:25:17

标签: sql-server

在SQL Server 2008中,我可以附加仅位于其预定义文件夹(C:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA)中的数据库。在某些情况下,特别是当我读书时,我需要从桌面附加测试数据库,而不是每次需要时复制每个数据库,但SQL Server不允许我访问桌面。

解决此问题的任何解决方法?

2 个答案:

答案 0 :(得分:1)

这可能是授予运行SQL服务的帐户对桌面文件夹(C:\Documents and Settings\YourLogin\Desktop)的适当权限的问题。但是,为什么不使用这些文件的公共保留位置,而不是使用特定于您的登录名称的桌面并且可能无法访问运行SQL服务的帐户?像C:\AdHocDBs或类似你想要的东西。

答案 1 :(得分:0)

首次创建数据库文件(数据或日志)时,它(当然)位于特定的驱动器和文件夹中。创建备份时,此信息将作为备份的一部分存储。除非另有说明,否则数据库RESTORE命令将假定数据库将在完全相同的位置进行恢复。为此,在“with”选项下的RESTORE命令中,必须包含“move”选项。它看起来像这样:

RESTORE ...
 with 
   move '<logcalFileName>' to 'physicalFileName'
  ,move '<logcalLogFileName>' to 'physicalLogFileName'

每个要移动的文件必须包含一个move,因此您通常最终会使用这些子句中的至少两个。棘手的部分是您必须知道数据库文件的逻辑名称。这些可以通过附加数据库上的sp_helpFile

找到
RESTORE FILELISTONLY
 from disk = '<backupFile>'

在现有备份上。

(我确信所有这些都可以通过SSMS备份/恢复GUI以某种方式完成。我在几年前切换到基于TSQL的脚本,以便快速灵活地访问备份和恢复命令中包含的所有功能。)