附加数据库时出错。单击“消息”列中的超链接以了解详细信息

An error occurred when attaching the database(s). Click the hyperlink in the Message column for details

我正在尝试附加名为 (HaseebProject.mdf) 的外部数据库,但每次我都遇到错误 “附加数据库时出错。单击消息列中的超链接了解详细信息。” 那里有什么错误..??即使在消息字段中有任何错误消息,如图所示。enter image description here

当我单击添加按钮添加数据库时,数据库目录中有两个路径。我都试过了,但他犯了同样的错误。enter image description here

尝试 运行 SQL Server Management Studio 作为管理员

我也遇到了这个问题,我确实右键单击(.mdf.ldf)文件,然后在安全选项卡上单击编辑。

在新的 window 中找到用户并将权限设置为完全控制。如果找不到用户,请单击:

add button-->advanced-->Find now-->find users 

然后点击确定。 如果它不起作用,您可以从数据库备份并恢复它而不是附加。我已经做到了,它 works.But 在恢复之前确保你的数据库(.mdf 和 .ldf)在恢复之前不应该存在于 SQL 服务器数据库目录中(这取决于你的 SQL我的服务器安装路径 -->C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA) 否则你会遇到错误

  1. 导航到包含数据库的目录并打开 文件夹的属性。
  2. 转到“安全”选项卡,编辑权限,添加用户。
  3. 在位置中,select 托管服务器的位置。
  4. 在对象名称中,输入 NT Service\MSSQL$<Instance-Name>(例如 NT Service\MSSQL$MSSQLSERVER)。
  5. 将权限设置为完全控制并保存。

这将为您的 SQL 服务器实例提供对目标目录的完全权限。

我遇到了同样的问题。问题是我正在传输数据库文件的磁盘。因此,如果您要将数据库文件从一台计算机复制到另一台计算机,请确保可移动磁盘没有损坏。始终尝试使用第二个可移动磁盘。并且不要忘记以管理员身份 运行 SSMS。

  1. 右键单击 MyDataBase.MDF 文件
  2. Select 属性 -> 转到安全选项卡 -> Select 编辑 -> Select 添加 -> Select 高级 -> Select 立即查找-> Selecte 用户管理员和用户所有人
  3. 将两者的权限设置为完全控制
  4. 点击确定
  5. 清除MyDataBase_log.LDF文件
  6. MyDataBase.MDF 文件复制到此位置:

    (C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA)

  7. 运行 SQL Server Management Studio 作为管理员

  8. 从这个地址附加 MyDataBase.MDF 文件:

    (C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA)

到目前为止,我看到的所有答案都是对可能出现的问题的可能建议,但不一定能帮助您确定阻止您附加此数据库的问题。

您所指的错误消息实际上是针对您的情况指向更具体的错误消息。此更具体的错误消息位于您已经打开的 "Attach Database" window 的消息列中(您可能只需要滚动到 "Databases to attach" 部分的右侧并单击完整查看消息。

使用此命令从 .mdf 文件附加数据库

USE [master]
GO
CREATE DATABASE [SchoolDB] ON 
( FILENAME = N'C:\SchoolDB.mdf' )
FOR ATTACH
GO

我遇到了同样的问题。我展开报错信息后发现是说.MDF文件被压缩了

我用谷歌搜索了这个问题,发现这个资源解决了我的问题。 https://blogs.msdn.microsoft.com/sqlblog/2006/10/02/sql-server-databases-are-not-supported-on-compressed-volumes/

如果您的错误与此类似:

Create failed for Database 'Compressed_DB'.  (Microsoft.SqlServer.Smo)

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

The file "E:Compressed_DB.mdf" is compressed but does not reside in a read-only database or filegroup. The file must be decompressed.

CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (Microsoft SQL Server, Error: 5118)

然后您可以右键点击.MDF文件所在的文件夹,点击"Properties"。 单击“常规”选项卡中的 "Advanced",然后取消选中 "Compress contents to save disk space"

这解决了我遇到的错误,所以请尝试并再次附加您的 .MDF。

在我的例子中,我更改了主数据库文件名,因此我不得不使用 "Current File Path" 列中的按钮再次 select 它们。

如果您已有 同名数据库,请在尝试附加 .mdf 文件之前将其删除。我的问题是它们的名称相同。

Ryan Harris 提到查看错误消息,这对我帮助很大。所以先看看那个,你可能有不同的问题。

SQL message