Sql server Can';SSMS中的t附加数据库
对于我的家庭作业,我被告知下载一个zip文件夹,其中包含我将要处理的数据库的Sql server Can';SSMS中的t附加数据库,sql-server,Sql Server,对于我的家庭作业,我被告知下载一个zip文件夹,其中包含我将要处理的数据库的.mdf文件。所以我提取了文件并保存了它。然后我进入SSMS去连接数据库,我得到了这个错误 =================================== Attach database failed for Server 'DESKTOP-VDSUPUV\SQLEXPRESS'. (Microsoft.SqlServer.Smo) ------------------------------ For he
.mdf
文件。所以我提取了文件并保存了它。然后我进入SSMS去连接数据库,我得到了这个错误
===================================
Attach database failed for Server 'DESKTOP-VDSUPUV\SQLEXPRESS'. (Microsoft.SqlServer.Smo)
------------------------------
For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=15.0.18206.0+((SSMS_Rel).191029-2112)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
at Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.Attach()
at Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.SendDataToServer()
===================================
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
at Microsoft.SqlServer.Management.Smo.Server.AttachDatabaseWorker(String name, StringCollection files, String owner, AttachOptions attachOptions)
at Microsoft.SqlServer.Management.Smo.Server.AttachDatabase(String name, StringCollection files)
===================================
Unable to open the physical file "C:\Users\Public\Documents\Databases\PR_log.ldf". Operating system error 2: "2(The system cannot find the file specified.)".
CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.5026&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
------------------------------
Server Name: DESKTOP-VDSUPUV\SQLEXPRESS
Error Number: 5120
Severity: 16
State: 101
Line Number: 1
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
我只下载了一个.mdf文件,没有日志文件。但是,当我尝试附加时,有人告诉我,如果没有日志文件,则会自动创建一个日志文件。在这张图片中是这样的?尝试复制到数据文件夹中安装的SQL位置
示例:C:\Program Files\Microsoft SQL Server\MSSQL11.SQLExpress\MSSQL\DATA有两个选项可以执行此操作:
使用[master]
去
在上创建数据库[PR]
(FILENAME=N'C:\Users\Public\Documents\Databases\PR.mdf')
用于附加\u重建\u日志
去
该错误准确地告诉您“无法打开物理文件”C:\Users\Public\Documents\Databases\PR\u log.ldf”的问题所在。您缺少日志文件。该文件已丢失,或者SQL Server没有访问权限。默认情况下,SQL Server无法访问多个位置。@DaleK我以为SQL Server会在没有日志文件的情况下自动创建一个新的日志文件?不起作用。我将文件移动到C:\Program Files\Microsoft SQL Server\MSSQLS11.SQLExpress\MSSQL\DATA并尝试从那里附加它,但出现了相同的错误?是否有两个文件*.mdf和*.ldf?是的,最初没有,因此正确创建了一个新文件,mdf和ldf是一对文件,我们无法手动创建它们。它们是在第一次创建数据库时产生的,如果移动数据库,则必须同时复制它们。不要只复制MDF文件。我不是手动创建的,它是自动创建的,因为没有MDF文件。我以前在没有日志的情况下附加了一个.mdf文件,它以前工作过吗?