SQL Server附加数据库时出现错误的处理方法
前言
SQL Server 是数据库软件中比较常见且实用的软件,它的集成度很高,且功能非常强大。很多类型的网站系统后台数据库都依赖于SQL Server。但是,对于初学者而言,在操作过程中总是会出现各种各样的错误。现在,我对“无法升级数据库”这种报错信息,做详细处理流程的讲解。
一、如何附加数据库?
1.选择要添加的数据库文件,也就是.MDF和.LDF文件,将他们复制到SQL Server的工作目录下的存放数据脚本的位置。
选择复制数据库文件:
将复制好的数据库文件粘贴到SQL Server的工作目录下,我这里以路径“C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA”为例。
2.打开SSMS(数据库客户端管理工具),右键数据库,选择附加:
3.点击添加,选择刚才粘贴进数据库工作目录中的数据库文件(这里以TourDB.MDF为例),点击确定。
展开数据库,出现了我们刚才添加选择的数据库,说明附加成功。如果失败,附加时,就会报错。
二、无法升级数据库,出现(539类似版本号不匹配)错误解决办法
1.常见的无法附加数据库时,出现的错误
(1)数据类型不匹配,也就是说添加的数据脚本不符合SQL Server的规范,通常是SQL语句出现了出错误。
(2)无法解析数据库,即服务器无法访问数据库文件,就是数据库损坏了。
(3)无法升级数据库文件,就是服务器执行相关SQL操作时失败,大多数情况下都是数据库版本不兼容的问题。
2.无法升级数据库的解决办法
(1)首先,先看一看,出错的信息内容
很明显,版本不兼容,但是,我们还是要查看一下对应的版本,这一点很重要,会在后面的解决办法中起大作用。
(2)查看版本号,及兼容信息。右键任意一个创建好的数据库,选择属性,在选择页中,点击选项,就可以看到右边列表页中的兼容级别下拉列表。
因为我使用的是Sql Server2019,所以它兼容的最低版本是2008的。下面,我们再查看一下Sql Server的兼容表单:
Target SQL Server Version | Source SQL Server Version | Internal Database Version |
---|---|---|
SQL Server 2008 R2 | 665 | |
SQL Server 2008 | 661 | |
SQL Server 2008 R2 | SQL Server 2005 with vardecimal enabled | 612 |
SQL Server 2005 | 611 | |
SQL Server 2000 | 539 | |
SQL Server 2008 | 661 | |
SQL Server 2008 | SQL Server 2005 with vardecimal enabled | 612 |
SQL Server 2005 | 611 | |
SQL Server 2000 | 539 | |
SQL Server 2005 SP2+ | SQL Server 2005 with vardecimal enabled | 612 |
SQL Server 2005 | 611 | |
SQL Server 2005 | SQL Server 2000 | 539 |
SQL Server 7 | 515 | |
SQL Server 2000 | SQL Server 2000 | 539 |
SQL Server 7 | 515 | |
SQL Server 7 | SQL Server 7 | 515 |
(3)针对性解决办法:使用虚拟机,在windows虚拟机中安装与本机安装的Sql Server的兼容最低版本的Sql Server,此时,上述列举的Sql Server不同版本对应的兼容版本的叙述就起了作用。
(4)将在本机中无法附加的数据库文件在虚拟中安装的可以兼容的最低版本中附加,然后分离,复制分离后的数据库文件,再重新附加到本机数据库中,即可解决无法升级数据库,完成附加的问题。
在虚拟机中的Sql Server中完成附加,我这里是Sql Server2019,所以在虚拟中安装的是Sql Server2008。
分离数据库,点击任务,选择分离
分离时,勾选“删除”,点击确定
在虚拟机中找到刚才的数据库文件,将它们粘贴到本机,在本机重新附加。
对比前后的操作时间,可以发现很明显发生了变化:
重新附加数据库:
左下角显示正在执行,说明数据库版本不兼容的问题已经解决。
总结
本篇文章主要针对附加数据库时,出现“无法升级数据库”,版本不兼容的错误给出了详细的解决过程。为什么要在虚拟机中使用另一个低版本的Sql Server对数据库文件进行升级,再进行分离转换呢?这是因为有时候我们用的数据库可能是拷贝别人的,当我们无法使用自己本地的Sql Server打开它们时,是很难知道它们的库表结构的,所以重新创建一个和它们一摸一样的库表,可以说几乎不可能,而且费时费力。因此采用这种办法,只需要安装虚拟机,安装兼容的低版本的Sql Server就能快速解决这种问题。这只是我在学习实践过程的一点操作经验,希望对遇到类似问题的朋友有所帮助。
到此这篇关于SQL Server附加数据库时出现错误的处理方法的文章就介绍到这了,更多相关SQL Server附加数据库错误内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- sql2005 附加数据库出错(错误号:5123)解决方法
- MSSQL2005在networkservice权限运行附加数据库报(Microsoft SQL Server,错误: 5120)
- sql2005附加数据库操作步骤(sql2005还原数据库)
- sql server2012附加数据库问题解决方法
- MSSQL附加数据库拒绝访问提示5120错误的处理方法
- SQL附加数据库失败问题的解决方法
- SQL Server附加数据库出错,错误代码5123
- MSSQL 附加数据库提示“错误 823”数据恢复实操
- SQL Server数据库分离和附加数据库的操作步骤
- SQL Server2012附加数据库5120错误(拒绝访问)的解决方法
- SQL Server附加数据库报错:无法为该请求检索数据错误解决办法
- SQL Server附加数据库及出现5123错误的解决办法
相关文章
SQL语句中的ON DUPLICATE KEY UPDATE使用
本文主要介绍了SQL语句中的ON DUPLICATE KEY UPDATE使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08Sql Server Management Studio连接Mysql的实现步骤
本文主要介绍了Sql Server Management Studio连接Mysql的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-04-04SQL2005、SQL2008允许远程连接的配置说明(附配置图)
这篇文章主要介绍了SQL2005、SQL2008允许远程连接的配置过程,需要的朋友可以参考下2015-08-08sqlserver 多表关联时在where语句中慎用trim()方法
最近做的一个项目由于前期数据库设计不合理,导致多表关联的主外键长度设计不一致,以致过长主外键中过长的字段在填入相同字段时,多余部分被填入空字符。迫于无奈,就在多表关联的where语句中使用了trim()方法。2009-09-09C#连接Excel2003和Excel2007以上版本做数据库的连接字符串
C#连接Excel2003和Excel2007以上版本做数据库的连接字符串具体如下,需要的朋友可以参考下2013-11-11
最新评论