代码之家  ›  专栏  ›  技术社区  ›  sandalone

是否在桌面上附加.mdf文件?

  •  1
  • sandalone  · 技术社区  · 14 年前

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

    有解决这个问题的方法吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Joe Stefanelli    14 年前

    这可能是授予运行SQL服务的帐户对桌面文件夹的适当权限的问题( C:\Documents and Settings\YourLogin\Desktop ). 但是,为什么不为这些文件使用一个公共的保存位置,而不是像桌面这样的特定于您的登录并且运行SQL服务的帐户可能无法访问的位置呢?像这样的 C:\AdHocDBs 或者随便你怎么称呼它。

        2
  •  0
  •   Philip Kelley    14 年前

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

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

    一个 move sp_helpFile 在附加的数据库上,以及

    RESTORE FILELISTONLY
     from disk = '<backupFile>'
    

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