文件“ C:\ Program Files \ Microsoft SQL> Server \ MSSQL11.SQLEXPRESS \”的Tg目录查找失败

时间:2018-12-13 10:24:57

标签: c# sql-server

我正在尝试将数据库还原到SQL Server。

起初我收到此错误:

  

“ C:\ Program Files \ Microsoft SQL”文件的目录查找   Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase.mdf”失败   操作系统错误3(系统找不到路径)。

     

文件'myDataBase'无法还原到'C:\ Program Files \ Microsoft SQL   Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase.mdf”。采用   使用MOVE可以确定文件的有效位置。

     

文件“ C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase_log.ldf”的目录查找   失败,并出现操作系统错误3(系统找不到路径)。

     

文件'myDataBase'无法还原到'C:\ Program Files \ Microsoft SQL   Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase_log.ldf'。   使用WITH MOVE标识文件的有效位置。

     

在计划RESTORE语句时发现了问题。以前的消息提供了详细信息。
  RESTORE DATABASE异常终止。

问题是我的服务器未运行SQL Server Express。我不知道这部分的来源。

创建文件夹后,由于该文件夹在我的电脑上不存在,因此出现错误:

  

操作系统尝试在'C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase.mdf'上尝试'RestoreContainer :: ValidateTargetForCreation'时,操作系统返回错误'5(访问被拒绝。)'。 。文件'myDataBase'无法还原到'C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase.mdf'。使用WITH MOVE标识文件的有效位置。尝试在“ C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase_log.ldf”上尝试“ RestoreContainer :: ValidateTargetForCreation”时,操作系统返回错误“ 5(拒绝访问)”。无法将文件“ myDataBase_log”还原到“ C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA \ myDataBase_log.ldf”。使用WITH MOVE标识文件的有效位置。在计划RESTORE语句时发现了问题。以前的消息提供了详细信息。 RESTORE DATABASE异常终止

我也尝试过以管理员和SQL Server的身份运行Visual。

从SQL Server恢复数据库工作正常。

这是我的代码:

public RestoredDB RestoreDB(string destPath, string dbName)
        {
            var myServer = new Server(@"LOCALHOST");
            var restoredDb = new RestoredDB(); 


            var res = new Restore();
            res.Database = dbName;

            res.Action = RestoreActionType.Database;
            res.Devices.AddDevice(destPath, DeviceType.File);
            res.PercentCompleteNotification = 10;
            res.ReplaceDatabase = true;

            try
            {
                res.SqlRestore(myServer);
                restoredDb.Name = dbName;
                restoredDb.isRestored = true;
                return restoredDb; 
            }
            catch(Exception e)
            {
                MessageBox.Show(dbName + " couldn't be restored");

                restoredDb.Name = dbName;
                restoredDb.isRestored = false;

                return restoredDb; 
            }
        }

可能与权限有关?如何更改它们?

编辑:有没有办法在第一个错误消息中更改目录?一些myServer属性或其他内容?我在任何地方都找不到

0 个答案:

没有答案