附加数据库时发生错误。单击“消息”列中的超链接以获取详细信息

时间:2016-05-08 14:56:21

标签: sql-server database-connection

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

当我点击添加按钮添加数据库时,目录中有两条路径用于数据库。我试过两个但同样的错误。enter image description here

10 个答案:

答案 0 :(得分:13)

尝试以管理员身份运行SQL Server Management Studio

答案 1 :(得分:4)

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

您所指的错误消息实际上指向您针对您的情况的更具体的错误消息。此更具体的错误消息位于您已经打开的“附加数据库”窗口的“消息”列中(您可能只需要滚动到“要附加的数据库”部分的右侧,然后单击该消息以查看它即可)全部。

See circled area

答案 2 :(得分:3)

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

在新窗口中找到用户并设置完全控制权限。如果找不到用户,请点击:

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

然后单击“确定”。 如果它不起作用,您可以从数据库备份并恢复它而不是附加。我已经完成了它并且它工作。但是在恢复之前确保在恢复之前你的DB(.mdf和.ldf)不应该存在于SQL服务器数据库目录中(在我的情况下由你的SQL服务器安装路径决定 - > C:\ Program Files \ Microsoft SQL Server \ MSSQL12.SQL2014 \ MSSQL \ DATA)否则你将面临错误

答案 3 :(得分:1)

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

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

SQL message

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

  1. 右键单击MyDataBase.MDF文件
  2. 选择属性->转到“安全性”选项卡->选择“编辑”->选择“添加”->选择“高级”->选择“立即查找”->选择用户管理员和用户所有人
  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)

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

我有同样的问题。展开错误消息后,我发现它说.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文件所在的文件夹,然后单击“属性”。 单击“常规”选项卡中的“高级”,然后取消选中“压缩内容以节省磁盘空间”

这解决了我遇到的错误,因此请尝试一下,然后再次附加.MDF。

答案 9 :(得分:0)

就我而言,我更改了主数据库文件名,因此必须使用“当前文件路径”列中的按钮再次选择它们。

enter image description here