首先,“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”?
答案 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的解决方案:
答案 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'已损坏。
结合上面提到的各种建议,我得到了它的工作(并且在没有怀疑的情况下继续服务重启):
授予SQL服务帐户对MDF&amp ;;的完全权限。 LDF文件和Documents文件夹在将它们复制到DATA之前。
删除 C:\ Program Files \ Microsoft SQL 服务器\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \文档\ $ FSLOG \ placeholder.txt 的 (R2 BOL暗示这一点,但将其指向错误的级别)。
创建数据库[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
Program files(X86)\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
文件夹(或类似位置)中
适用于您的操作系统)答案 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),现在一切都很好。