无法将“AdventureWorks2008”示例数据库附加到SQL Server 2008中的命名实例

时间:2010-06-14 22:15:22

标签: sql-server-2008

首先,“Northwind”和“AdventureWorksDW2008”数据库附带没有问题,但“AdventureWorks2008”失败并出现以下错误。

//Msg 5120, Level 16, State 105, Line 1
 Unable to open the physical file 
"C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Documents".
 Operating system error 2: "2(The system cannot find the file specified.)".
 Msg 5105, Level 16, State 14, Line 1
 A file activation error occurred. The physical file name 
 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Documents' 
 may be incorrect. Diagnose and correct additional errors, and retry the operation.
 Msg 1813, Level 16, State 2, Line 1
 Could not open new database 'AdventureWorks2008'. CREATE DATABASE is aborted.

我在安装期间没有使用默认数据库实例“MSSQLSERVER”。

那么它在哪里找到这条路径“C:... \ MSSQL10.MSSQLSERVER ... \ Documents”?

10 个答案:

答案 0 :(得分:2)

转到sql server配置管理器 SQL Server服务SQL Server(MSSQLSERVER) 将“登录为”更改为“本地系统”

答案 1 :(得分:1)

首先,您需要启用FILESTREAM用法:

EXEC sp_configure filestream_access_level, 2
RECONFIGURE

之后您可以创建数据库:

USE [master]
GO
CREATE DATABASE [AdventureWorks2008] ON 
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\AdventureWorks2008_Data.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\AdventureWorks2008_Log.ldf' ),
FILEGROUP [PRIMARY] CONTAINS FILESTREAM DEFAULT 
( NAME = N'Documents', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLTRAININGKIT\MSSQL\DATA\Documents' )
FOR ATTACH
GO

更改实例名称的TRAININGKIT实例名称,并使用sysadmin权限检查运行后的路径。

答案 2 :(得分:1)

这是我对SQL2008R2的解决方案:

  1. 在数据文件夹
  2. 下创建文件夹文档
  3. 启动MSSQL Mgmt Studio(以管理员身份运行)
  4. 将文件流访问级别设置为完全访问权限(Srv属性/高级)
  5. 附加db AdventureWorks2008R2.mdf(在附加之前添加db并删除日志文件)

答案 3 :(得分:1)

就像SQL Guy!我从配置管理器启用FILESTREAM => services => yourinstance =>右键单击=>属性=>高级然后我就可以了  从附件菜单中删除日志文件的必要性(右键单击sql => attach ...中的数据库)。它有效!

答案 4 :(得分:1)

它似乎正在工作,但在SQL服务重启后变为可疑。 SQL Log说:

  

消息FILESTREAM的文件系统日志记录'placeholder.txt'下   日志文件夹'\?\ C:\ Program Files \ Microsoft SQL   Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ Documents \ $ FSLOG'已损坏。

结合上面提到的各种建议,我得到了它的工作(并且在没有怀疑的情况下继续服务重启):

  1. 授予SQL服务帐户对MDF&amp ;;的完全权限。 LDF文件和Documents文件夹在将它们复制到DATA之前。

  2. 删除 C:\ Program Files \ Microsoft SQL 服务器\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \文档\ $ FSLOG \ placeholder.txt 的 (R2 BOL暗示这一点,但将其指向错误的级别)。

  3.   

    创建数据库[AdventureWorks2008] ON(FILENAME =       N'C:\ Program Files \ Microsoft SQL       服务器\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks2008_Data.mdf”       ),(FILENAME = N'C:\ Program Files \ Microsoft SQL       Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ AdventureWorks2008_Log.ldf')       ,FILEGROUP [PRIMARY]包含FILESTREAM DEFAULT(NAME =       N'Documents',FILENAME = N'C:\ Program Files \ Microsoft SQL       Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ Documents')       FOR ATTACH_REBUILD_LOG

答案 5 :(得分:1)

通过以下方式解决:

我修复了它作为.mdf和.ldf文件在不同的驱动器上, 它给出了一些奇怪的错误,所以我只附加了mdf文件,并且服务器在与mdf相同的驱动器上创建了.ldf文件。这种方式我可以附加它,但后来我把数据库脱机复制日志从D:\到E:\然后将数据库联机。它奏效了。

有时您可以:

尝试使用Windows身份验证登录和
以管理员身份启动SQL Server管理器(右键单击该程序,选择“以管理员身份启动”)

答案 6 :(得分:0)

似乎很多人都有这个问题,包括我,包括那个用MS Connect记录这个错误的人:

http://connect.microsoft.com/SQLServer/feedback/details/567193/adventureworks-2008-fails-to-attach

答案 7 :(得分:0)

这对我有用:

使用的软件-SQL Server 2008 Express R2,Windows Vista操作系统,Adventureworks2008R2.mdf

  1. 将数据库放在Program files(X86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA文件夹(或类似位置)中 适用于您的操作系统)
  2. 我的所有安装文件都是默认文件。这是完成的 带有SQL SERVER Express 2008R2的Windows Vista。使用的数据库是 Adventureworks2008R2.mdf。
  3. 重要部分---在SSMS ATTACH DIALOGUE中选择数据库之后 BOX必须先删除日志文件(在Attach对话框中) 盒子),(。ltf文件)。如果您不删除此文件的附件 将失败并显示错误消息。
  4. 数据库附加并且无需任何更改即可正常运行 帐户或登录或任何其他步骤。

答案 8 :(得分:0)

这是我能让它发挥作用的唯一方法。 (没有文件流安装) 转到Download 'AdventureWorks 2008R2 OLTP Script'

解压缩并打开instawdb.sql脚本。请记住将变量设置在脚本的顶部。运行脚本。这应该批量加载所有数据。祝你好运!

答案 9 :(得分:0)

在我的情况下,问题与我使用的文件和SQL的版本有关。我安装了SQLServer2008R2,我使用的文件是AdventureWorks2008_Data.mdf。我从这里下载了http://msftdbprodsamples.codeplex.com/releases/view/59211(AdventureWorks2008R2_Data.mdf),现在一切都很好。