SQL Server附加数据库时出现错误的处理方法

 更新时间:2022年12月15日 09:46:17   作者:永黯魔主  
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败,下面这篇文章主要给大家介绍了关于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 VersionSource SQL Server VersionInternal Database Version
SQL Server 2008 R2665
SQL Server 2008661
SQL Server 2008 R2SQL Server 2005 with vardecimal enabled612
SQL Server 2005611
SQL Server 2000539
SQL Server 2008661
SQL Server 2008SQL Server 2005 with vardecimal enabled612
SQL Server 2005611
SQL Server 2000539
SQL Server 2005 SP2+SQL Server 2005 with vardecimal enabled612
SQL Server 2005611
SQL Server 2005SQL Server 2000539
SQL Server 7515
SQL Server 2000SQL Server 2000539
SQL Server 7515
SQL Server 7SQL Server 7515

(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附加数据库错误内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL中使用CONVERT函数转换数据类型的简单实现方法

    SQL中使用CONVERT函数转换数据类型的简单实现方法

    CONVERT函数是SQL中用于数据类型转换的工具,允许将一个数据类型转换为另一个,如字符串转数字或日期转字符串,该函数的基本语法包括目标数据类型、要转换的表达式和可选的格式参数,需要的朋友可以参考下
    2024-09-09
  • SQL Server数据库连接查询和子查询实战案例

    SQL Server数据库连接查询和子查询实战案例

    子查询(嵌套查询)子查询也称嵌套查询,是指一个SELECT查询语句可以嵌入另一个SELECT查询语句之中,下面这篇文章主要给大家介绍了关于SQL Server数据库连接查询和子查询的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 在 SQL 语句中处理 NULL 值的方法

    在 SQL 语句中处理 NULL 值的方法

    在日常开发过程中你深入了解过sql数据库中的null值问题吗?今天小编抽空给大家分享在 SQL 语句中处理 NULL 值的方法,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • SQL Server事务日志已满的三种解决方案

    SQL Server事务日志已满的三种解决方案

    我们安装数据库后,系统会默认把数据库文件和数据库日志文件最大设为500MB,当然你中途可以更改这个限制,当日志文件接近最大值时,继续使用数据库会提示:事务日志已满,本文给出了三种解决方案,需要的朋友可以参考下
    2023-11-11
  • 必须会的SQL语句(二) 创建表、修改表结构、删除表

    必须会的SQL语句(二) 创建表、修改表结构、删除表

    这篇文章主要介绍了sqlserver中创建表、修改表结构、删除表的sql语句,需要的朋友可以参考下
    2015-01-01
  • sql 中 case when 语法使用方法

    sql 中 case when 语法使用方法

    sql语言中有没有类似C语言中的switch case的语句?
    2010-05-05
  • SQL Server四个系统表的知识讲解

    SQL Server四个系统表的知识讲解

    今天小编就为大家分享一篇关于SQL Server系统表知识,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 安装sqlserver2022提示缺少msodbcsql.msi错误消息的解决

    安装sqlserver2022提示缺少msodbcsql.msi错误消息的解决

    本文主要介绍了安装sqlserver2022提示缺少msodbcsql.msi错误消息,msoledbsql.msi文件是Microsoft OLE DB Provider for SQL Server的安装文件,下面就来介绍一下解决方法
    2024-05-05
  • 修改数据库为多用户模式

    修改数据库为多用户模式

    这篇文章主要介绍了修改sql数据库为多用户模式的方法,需要的朋友可以参考下
    2014-07-07
  • 浅谈SQL中Partition的相关用法

    浅谈SQL中Partition的相关用法

    本文主要介绍了浅谈SQL中Partition的相关用法,使用Partition可以根据指定的列或表达式将数据分成多个分区,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论