【问题标题】:Error while trying to attach .mdf尝试附加 .mdf 时出错
【发布时间】:2018-08-31 23:02:57
【问题描述】:

我试图将带有数据的数据库从 s3 机器导入到我的本地机器,因为我已经从 s3 机器上分离了数据库并将数据库复制并粘贴到以下路径'D:\Databases\MSSQL 的本地机器上\OLTP\数据\Test_AS.mdf' 现在,当我尝试将此 mdf 文件附加到 SQL Server 实例时,它显示一条错误消息:

Attach database failed for the server                                                        
Additional Information :                                                                     
     An exception occurred while executing Transact-SQL statement or batch
(Microsoft.SqlServer.Connectioninfo)                                                       
         Unable to open the physical file "D:\Databases\MSSQL\OLTP\Data\Test_AS_log " Operating system error 2 : 2(failed to retrieve text for this error.Reason : 15105)"."(Microsoft SQL Server Error : 5120)"

SQL Server 有权使用该位置执行此操作。

【问题讨论】:

  • SQL Server 是否有权访问相关位置?文件是否完全一样存在(不包括文件扩展名)?
  • 操作系统错误 2 是未找到文件,这清楚地表明您为文件指定了无效的位置,或者文件名存在问题。你在那个位置真的有一个名为Test_AS_Log (没有扩展名和空格)的文件吗?
  • 您是否要将此附加到 远程 SQL Server 计算机?如果是,文件是否在远程机器的 D:\ 驱动器上 ??
  • Ken White,不,它不包含该文件,实际上它必须在尝试将数据库附加到 SQL Server 实例时默认创建日志文件。但它显示了一些错误,如我所拥有的提及。而且 SQL Server 也有权访问该位置。

标签: sql sql-server


【解决方案1】:

附加时需要同时指定数据文件和日志文件:

CREATE DATABASE DataBaseName
    ON (FILENAME = 'D:\Databases\MSSQL\OLTP\Data\Test_AS.mdf'), 
    (FILENAME = 'D:\Databases\MSSQL\OLTP\Data\Test_AS_log.ldf') 
    FOR ATTACH; 

【讨论】:

    【解决方案2】:

    我有类似的问题。原来问题的原因是 .mdf 和 .ldf 文件都被压缩,因为 D: 驱动器已选中“压缩此驱动器以节省磁盘空间”。

    此外,我什至无法在 D: 上创建新数据库,因此。 通过在属性/高级中取消选中 .mdf 和 .ldf 文件的“压缩内容以节省磁盘空间”来解决...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 2021-01-03
      相关资源
      最近更新 更多