将sql server 2000的备份文件导入到sql server 2012中

问题

在学习sql server 索引的时候,发现找到的很多资料都用的是一个Credit的数据,但是我不知道Credit数据库是从哪里来的。后来在聚集索引与非聚集索引详解这篇文章中找到了如下信息:

USE CREDIT go -- These samples use the Credit database. You can download and restore the -- credit database from here: -- http://www.sqlskills.com/resources/conferences/CreditBackup80.zip -- NOTE: This is a SQL Server 2000 backup and MANY examples will work on -- SQL Server 2000 in addition to SQL Server 2005. 

顺利下载这个文件并解压缩以后发现这是一个sql server 2000的备份文件,后缀名是.bak。不过我用的是sql server 2012,使用如下方法来恢复这个数据库备份文件:打开SSMS->database->右键选择restore files and filegroups,然后按如下图所示操作:

但是执行这个操作会报错,错误如下图所示:主要是说明版本差异问题,我的bak文件是8.0版本(sql server 2000),但是要导入到11.0版本(sql server 2010)中,因此报错。

解决方案

因为源文件版本过低,而目标数据库版本过高,这样的问题一个好的解决方案是首先降低目标数据的版本,然后一步一步往上提升版本。所以这里我们用使用sql server 2008作为过渡数据库。我们将上面的CreditBackup80.bak这个数据备份文件还原到sql server 2008中,假设还原在sqlserver2008中的数据库名称为Credit2008,然后在 sqlserver 2008中backup这个Credit2008数据库,默认会备份到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录下面,备份文件名成为CreditBackup100.bak,最后将此备份文件CreditBackup100.bak还原到sql server 2012中。

PS:使用SSMS将sqlserver2008的bak文件还原到sqlserver2012中出现错误

错误1:启动sqlserver2012->右键database->restore files and filegroups->在source for restore中选择from device,然后选择CreditBackup100.bak这个文件的路径,但是当我们指定到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录的时候,发现找不到任何文件,如下图所示:

解决错误1:这是因为C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup这个目录有权限设定,我们查看这个目录的属性可以发现这个目录有一个特殊的用户叫做:T-WEIXU-W7\SQLServerMSSQLUser$t-weixu-w7$SQLEXPRESS。也就是说只有这个用户才有访问这个目录下的文件的权限。所以我门可以在windows下将C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup目录下的CreditBackup100.bak文件拷贝到其他目录,比如我现在拷贝的目录是:D:\CreditBackup80。

错误2:在解决上述错误以后,我们在source for restore中选择from device,并且选定了CreditBackup100.bak这个文件,最后点击OK,但是会提示错误:

The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on ....。具体如下图所示:

从上述错误我们发现是因为我们想将sqlserver2008的bak文件还原到sqlserver2012的时候,却默认的被还原到原先的sqlserver2008的目录下,从路径“C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Credit2012.mdf”我们可以知道这个就是sqlserver2008实例的目录。

解决错误2:造成这样错误的主要原因是因为我们在机器上安装了sqlserver2008和sqlserver2010两个版本,但是SSMS默认情况下只是让数据还原到sqlserver2008的目录下,我们必须指定sqlserver2012的目录,具体操作是:在restore file and filegroups界面中选中options,然后选定sqlserver2012实例的存放目录,如下图所示:

点击箭头所示的按钮(注意:必须通过点击按钮来指定目标位置的地址,如果手动修改路径的字符串,依然会报错。),会弹出如下错误:

指定Credit2012的数据文件和日志文件的存放目录,如下图所示:

完成上述操作以后点击确定,就能够正确完成数据库还原操作,最终将sqlserver2000的bak文件还原到了sqlserver2012中来。

解决错误2-方法2:

在sqlserver configure manager中选中sqlserver2012的properties,然后修改log on as中的属性,使用build-in account中的local system,具体参考:http://social.msdn.microsoft.com/Forums/en-SG/sqldatabaseengine/thread/7b259f06-e1e2-47f5-8303-77775ee80400。

将sql server 2000的备份文件导入到sql server 2012中相关推荐

  1. SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中

    最近,电脑重装系统之后,安装了SQL Server 2008.附加数据库文件的时候,发现无法附加,提示版本不对.想起来,原来的数据库版本是SQL Server 2008R2.低版本的数据库管理工具无法 ...

  2. sql server 2000 数据库。 怎样用sql语句,在没有主键的情况下删除数据库中多条......

    2019独角兽企业重金招聘Python工程师标准>>> 如题. 转载于:https://my.oschina.net/didiaomo2014/blog/15977

  3. mysql sql文件太大_MySQL导入的sql脚本文件过大解决方案

    运维同事近日给到我这边一个mysql的备份脚本文件,大小超过2.4G. 于是直接通过Navicat客户端导入脚本,但是报错:MySQL server has gone away. 于是想通过截取文件, ...

  4. ubuntu mysql sql文件_ubuntu 下mysql导入出.sql文件

    1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p waf> /home/waf.sql 2.导出一个表 my ...

  5. 如何通过 PL/SQL Developer 将 Excel 数据导入 Oracle 对应的表中

    首先将 Excel 文件另存为文本文件,然后在点击 PL/SQL Developer 菜单栏的[工具]-[文本导入器],打开后如图所示: 上述步骤操作完之后,点击[到oracle的数据]:

  6. bak文件转换成sql文件_数据库bak文件转sql

    Asp.Net 备份和恢复SQL SERVER 数据库 我们通常备份数据库时,需要登录数据库服务器去备份和恢复,这样很不方便,其实SQL SERVER自带的命令可能让我们很简单地实现远程通过Asp.N ...

  7. Microsoft SQL Server 2000整合规划

    Microsoft SQL Server 2000整合规划 更新日期: 2004年06月24日 SQL Server技术文章 作者:Allan Hirt 投稿人:Tom Davidson和Shaun ...

  8. SQL Server 2000 Service Pack 4 中所修复的 bug 的列表

    有关在 SQL Server 2000 Service Pack 4 已修复的 bug 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 314128  FIX: 一 ...

  9. 当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决...

    这个话题起源于今天面对一个客户的报表问题,用存储过程写的报表语句,跑在SQL Server 2000上面.客户说有一个地方抱错,而自己开发机器这边,死活找不到一个SQL Server 2000,全部都 ...

  10. Microsoft SQL Server 2000 中的数据转换服务 (DTS)

    摘自:http://www.microsoft.com/china/MSDN/library/data/sqlserver/DataTransformationServices(DTS)inMicro ...

最新文章

  1. 七、压缩与解压缩命令
  2. Maven 国内镜像很慢解决的方法
  3. 0322Private strand flush not complete
  4. python开发工具和框架安装器_Python基础框架和工具
  5. Linux下更换jdk和配置环境变量
  6. .netcore 如何获取系统中所有session_C#/.NET/.NET Core定时任务调度组件有哪些?
  7. 自然语言处理python代码_《自然语言处理入门 Python/Java双代码实现(图灵出品)》(何晗)【摘要 书评 试读】- 京东图书...
  8. 关于CSP-J/S2019准考证下载、考点查询等问题的说明
  9. Unity TextMesh Pro 常用汉字及字母符号
  10. Android 8(1),腾讯字节爱奇艺网易华为实习面试汇总
  11. java冒泡排序及面向对象基本概念
  12. vue+IOS9页面白屏
  13. root+android+8.0,荣耀8 root两步强刷Android 8.0
  14. 彩虹易支付最新版开源版源码分享
  15. 与报文交换比较,分组交换有哪些优点?
  16. 经验总结 | PBS系统的使用
  17. 万亿估值来了!3次大难不死,蚂蚁金服终于登顶世界第一
  18. 《Speech and Language Processing》读书笔记——语法规则及其解析
  19. leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】
  20. 背书小程序正式上线啦

热门文章

  1. 实用工具软件远古大神Nir Sofer,数百款短小精悍便携工具,从Win2000到Win10通吃
  2. Windows Server 2008 R2 企业版操作说明手册
  3. 【洛谷试炼场】新手村:洛谷的第一个任务
  4. 抖音小店无货源,出现退货的情况怎么处理?千万别大意
  5. php 四级联动插件,php四级联动
  6. Linux下NTP服务器配置
  7. Java学习-Java系统介绍
  8. 测试用例--测试大纲(提纲)法
  9. ARcore概述及开发环境.md
  10. 蓝牙 穿戴手环通信原理