1.当数据库已经建好在DB里,SQL Server 2005 和 SQL Server 2008使用.Bak文件还原的时候,会出现 error : "The backup set holds a backup of a database other than the existing" 查了网上的方法:

方法一[未验证]

[sql] view plaincopy --返回由备份集内包含的数据库和日志文件列表组成的结果集。

--主要获得逻辑文件名

      • --返回由备份集内包含的数据库和日志文件列表组成的结果集。
      • --主要获得逻辑文件名
      • USE master
      • RESTORE FILELISTONLY
      • FROM DISK = 'g:\back.Bak'
      • Go
      • --**********************************
      • /*
      • 利用bak恢复数据库,强制还原(REPLACE)
      • STATS = 10 每完成10%显示一条记录
      • DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件
      • */
      • USE master
      • RESTORE DATABASE DB
      • FROM DISK = 'g:\back.Bak'
      • WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf',
      • MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
      • STATS = 10, REPLACE
      • GO
      • -------------------------------------
    • /*
    • 备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
    • */
    • USE master
    • BACKUP DATABASE DB
    • TO DISK = 'g:\DBBack0930.bak'
    • RESTORE FILELISTONLY
    • FROM DISK = 'g:\DBBack0930.bak'
    • RESTORE DATABASE DBTest
    • FROM DISK = 'g:\DBBack0930.bak'
    • WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf',
    • MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf'
    • GO
    • ---******************************

方法二[验证过,不行] 需要注意两点: 在【选项】界面里 1.选择“覆盖现有数据库” 2.修改【将数据库文件还原为】区域里的【还原为】的位置,和要恢复的数据库的实际位置保持一致

方法三[验证过,可行] 1.先删掉需要还原的数据库,右键【服务器】下的【数据库】,选择【还原数据库】,键入新的目标数据库名; 2.在【选项】里,选择覆盖数据库; 3.执行就ok了。

2.Microsoft SQL Server还原失败,错误: 3219

转载自:http://blog.sina.com.cn/s/blog_4e6f891f0101css5.html

MSSQL还原数据库失败,提示如下: 还原对与服务器 失败。(Microsoft.SqlServer.Smo)

其它信息:执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionsInfo)。不能选择文件或文件组“……”用于此操作。 RESTORE DATABASE 正在异常终止。(Microsoft SQL Server, 错误:3219)

出现此错误时我的操作步骤为:右击数据库》》任务》》还原》》文件和文件组》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原文件和文件组”对话框中点击“确定”按钮,即出现上面显示的错误。

正确的步骤为:右击数据库》》任务》》还原》》数据库》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原数据库”对话框中点击“确定”按钮,即可正确还原。

主要原因: 文件和文件组备份必须被还原到匹配的数据库

还原文件和文件组备份 SQL Server 的说明的详细信息可见: http://support.microsoft.com/kb/281122/zh-cn

至于“还原数据库”和“还原文件和文件组”的区别可以见此文章:http://www.cnblogs.com/zping/archive/2008/08/21/1272961.html

==================================================================================================

在此简单说明下,我不是用于还原已存在数据库,而是创建新数据库,与上面操作不同的只是:不是指定某个数据库后右键》任务》……,而是数据库上一级【数据库】右键》还原数据库(注意:不是还原文件和文件组)……。

SQL Server还原和一些小发现的更多相关文章

  1. Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权)

    Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权) 问题分析:数据库还原的时候还有其他进程连在上面,导致无法获得独占造成的. 解决方案: 一.切断连接进程 .查询要还原的数据 ...

  2. sql server 常用的函数小汇

    摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但 ...

  3. sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

    这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户.解决办法就是关闭与要还原数据库的所有连接. 脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务 ...

  4. sql server还原数据库文件(.bak)常见问题解决办法笔记

    还原的时候出现错误:备份集中的数据库备份与现有的数据库不同 SQL Server 2005数据库还原出错错误具体信息为:备份集中的数据库备份与现有的A数据库不同 具体操作如下:第一次:新建了数据库A, ...

  5. sql server还原注意事项

    使用Sql Server 2000的数据库备份文件还原Sql Server 2000的数据库和还原Sql Server 2005的数据库区别:1.在还原至Sql 2000时是必须新建数据库并对其还原, ...

  6. SQL Server还原数据库

    http://www.cnblogs.com/ggll611928/p/6377545.html 恢复数据库: 1.分离数据库以断开当前的访问连接. 2.附加数据库mdf文件. 3.执行RESTORE ...

  7. SQL Server 还原错误“restore database正在异常终止 错误 3154”

    今天在还原数据库时,先建立相同名字的数据库,然后在该数据库上右键还原数据库.遇到了这样的一个错误: “备份集中的数据库备份与现有的 'RM_DB' 数据库不同. RESTORE DATABASE 正在 ...

  8. [SQL SERVER] - 还原数据库备份(SQL脚本),抛出 "System.OutOfMemoryException" 异常之解决

    背景 在 Microsoft SQL Server 2016 的查询窗体中,直接还原备份数据库的 SQL 脚本(99MB),抛出 Cannot execute script 异常: 原因 相关资料说: ...

  9. sql server还原数据库bak文件

    RESTORE DATABASE CCC FROM DISK = 'AAA.bak' with replace,  MOVE 'BBB' TO 'C:\Program Files\Microsoft ...

随机推荐

  1. C#构造函数使用

    作用:帮助我们初始化对像(给对像的每个属性依次的赋值) 构造函数是一个特殊的方法 1.构造函数没有返回值,连void也不能写 2.构造函数名称要和类名一样 3.创建对像时会执行构造函数 4.构造函数可 ...

  2. c++中static的使用

    static可以用来修饰变量,包括函数的局部变量,类的成员变量.可以用来修饰函数,包括类的成员函数,普通函数. 今天就只说说static修饰类之外的函数的情况.假设你写了一个head.h,一个a.cp ...

  3. hadoop文本转换为序列文件

    在以前使用hadoop的时候因为mahout里面很多都要求输入文件时序列文件,所以涉及到把文本文件转换为序列文件或者序列文件转为文本文件(因为当时要分析mahout的源码,所以就要看到它的输入文件是什 ...

  4. ThinkPHP自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  5. LBS配置

    js: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak= ...

  6. 作为一个新人,怎样学习嵌入式Linux,(韦东山)

    很早以前在网上看到的韦东山老师写的文章,复制到自己的博客,方便自己以后看. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会). C语言要学到什 ...

  7. 错误日志类C#

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  8. 第一个微信小程序(实现点击一个按钮弹出toast)

    今天根据网上的教程搭建了微信小程序的环境,然后看文档做了一个简单的小应用. 项目的目录是这个样子的: app.js.app.json.app.wxss是全局文件,必不可少的文件.定义在app.wxss ...

  9. Swift—计算属性-备

    计算属性本身不存储数据,而是从其他存储属性中计算得到数据. 计算属性概念: 计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值. ...

  10. 【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错

    本文作者为博客园阿梓喵http://www.cnblogs.com/c4isr/,转载请注明作者. 本文源地址:http://www.cnblogs.com/c4isr/p/3532362.html ...