请教:关于C# 还原数据库文件的问题

问题描述

用SQLSERVER2005,在企业管理工具中,写SQL查询语句RESTOREDATABASE[MYDB]FROMDISK=N'F:dbback.bak'WITHFILE=1,NOUNLOAD,REPLACE,STATS=10GO出现错误提示:---------------------------------------消息3101,级别16,状态1,第1行因为数据库正在使用,所以无法获得对数据库的独占访问权。消息3013,级别16,状态1,第1行RESTOREDATABASE正在异常终止。请问,如何解决?用C#中怎么写呢?一直没成功过。

解决方案

解决方案二:
连接数据库时,不要指定连接哪个数据库,如:stringconstr="server=127.0.0.1;uid=sa;pwd=ffcsyou;";
解决方案三:
C#中也是这样写,只不过需要用sa登录数据库,对于独占访问可能是你的程序正在运行这个数据库中的某些内容
解决方案四:
引用1楼youbl的回复:

连接数据库时,不要指定连接哪个数据库,如:stringconstr="server=127.0.0.1;uid=sa;pwd=ffcsyou;";

解决方案五:
还原之前先在服务管理器中停止服务再开启服务就可以了,我经常遇到这个问题,都是这样解决的,如果想在还原之前重启一次SQLSERVER服务的话,可以参考service类的相关操作。

时间: 2024-12-22 06:12:27

请教:关于C# 还原数据库文件的问题的相关文章

mysql 备份还原-navicat for mysql 导入导出sql文件 备份还原 数据库的原理 相关指令大概是怎样的?

问题描述 navicat for mysql 导入导出sql文件 备份还原 数据库的原理 相关指令大概是怎样的? 本地不用安装mysql也可以使用?不用配置环境变量?自己用mysqldump备份要安装mysql还有配环境,求高人指点

MSSQL还原数据库失败 不能选择文件或文件组 Microsoft SQL Server,错误:3219

MSSQL还原数据库失败,提示如下: 还原对与服务器 失败.(Microsoft.SqlServer.Smo) 其它信息: ┃ ┗→执行Transact-SQL语句或批处理时发生异常.(Microsoft.SqlServer.ConnectionsInfo) ┃ ┗→不能选择文件或文件组"--"用于此操作. RESTORE DATABASE 正在异常终止.(Microsoft SQL Server, 错误:3219) 出现此错误时我的操作步骤为: 右击数据库>>任务>

编程实现备份和还原数据库

备份|编程|数据|数据库  注意,下面备份还原都是用存储过程实现! if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_backupdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_backupdb]GO /*--备份数据库的通用存储过程 --邹建 2003.10--*/ /*--调用示例 --备份当前数据库e

Oracle RMAN还原与恢复讲解(二)如何还原控制文件

1.使用RMAN(不使用FRA)从自动备份中恢复控制文件 ORACLE 会默认地在$ORACLE_HOME/dbs 或者 $ORACLE_HOME/DATABASE 目录中创建服务器参数文件与控制文件. 假设已经还原了实例参数文件和启动了实例,还原控制文件时,一般过程是先设置ORACLE_SID 和 登陆 RMAN, 然后设置DBID, 使RMAN知道需要查找哪一个数据库的控制文件. 如果使用默认的位置来存储控制文件的自动备份,就可以简单的执行:Restore controlfile from

sqlserver2008根据日志还原数据库

  前言:最近项目接近了尾声,随之而来的是维护问题,当然涉及到数据库的数据维护,通过资料和实际操作整理有关误操作后根据日志还原数据库. 前提:①必须有数据库的完整备份(做个备份计划);②数据库恢复模式是完整的(FULL). 步骤:①发现误操作时,记录下时间点date并备份日志文件(备份脚本:USE master BACKUP LOG 数据库 TO disk=N'G:cclog.bak' WITH NORECOVERY); ②还原数据库(还原脚本:USE master RESTORE DATABA

sql server还原数据库

  还原数据库 1.打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server 2.SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取 3.点击新建好的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择恢复数据库 4.在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚

SQL Server还原数据库操作

  还原数据库 企业管理器 --右键"数据库" --所有任务 --还原数据库 --"还原为数据库库"中输入还原后的数据库名 --还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面 --备份号--选择内容--选择你要恢复那次备份的内容 --选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名 --如果要还原的数据库已经存在,选择"在现有数据库上qz还原&quo

SQL Server 2008 如何备份、还原数据库

  SQL Server 2008 备份数据库: 1.打开SQL , 找到要备份的数据库 , 右键 >> 任务 >>备份 2.弹出 [ 备份数据库对话框 ] ,如图:   3.点击添加 [ 按钮 ] . 如下图:   4.选择要备份的路径 和 备份的文件名 点击 [ 确定 ]. 5.然后就一直点击确定就可以了 . 然后我们来到D: 看看   6.这个时候 , 你可以把它压缩打包什么的 , 要用的时候 , 在文件后面加 .bak 后缀 就可以用SQL 来还原了,还原可以来看这里~ S

EF下的Code First编程,卸载程序如何还原数据库?

问题描述 各位老大.我最近写了一个基于EF的Web系统,正在写自动安装和卸载部分的代码.在卸载程序中,我需要还原数据库(也就是将数据库中已安装的数据表等全部删除,还原到安装前的状态).由于数据库中可能还有其他的数据表(比如一个数据库可能安装有多套WEB系统等),因此不能简单以删除数据库的方式来做.我看DbMigrator类没有卸载类的方法.请问如何做?谢谢!!1 解决方案 解决方案二:能不能自己写一个sql脚本,卸载时调用这个脚本,删除ef的相关表?解决方案三:引用1楼hanjun0612的回复