SQLServer附加数据库失败

Posted suwu150

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer附加数据库失败相关的知识,希望对你有一定的参考价值。

在导入数据库时我们有时会遇到错误,常见的两种错误的解决办法在这里作一作总结:

一、升级问题

在SQLServer2014中附加数据库时失败,在附加数据库的时候却提示无法升级数据库,错误539。点击消息详情之后能够看到如下错误:


附加数据库 对于 服务器“PC-20160315”失败。  (Microsoft.SqlServer.Smo)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=附加数据库+Server&LinkId=20476
------------------------------
其他信息
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
无法升级数据库 'jspjiaoshidanganxns',因为此版本的 SQL Server 不支持该数据库的非发布版本(539)。不能打开与此版本的 sqlservr.exe 不兼容的数据库。必须重新创建该数据库。
无法打开新数据库 'jspjiaoshidanganxns'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 950)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=950&LinkId=20476


出现这种问题主要是由于数据库版本不一致,具体来说是由于要导入的数据库文件版本太低,不能适应新版本软件,对于这种问题,我们只需将需要导入的数据库文件先导入较低版本比如2005或者2008版本的数据库,使用分离技术后然后再到回到SQLServer2014版本,注意在导入时计算机的位数要一致,然后再导入到2014版本中即可。

下面就让我们来看看具体的做法:

1、先将要安装的数据库文件复制到装有SQLServer2005或者SQLServer2008的操作系统中,然后进行导入,其具体过程如下图所示现将如下文件拷贝至拥有SQLServer2005/2008的操作系统:                    

 

图1

2、导入数据库:打开SQLServer2005后右键选中“数据库,会出现下拉列表,然后选中“附加”

            

   图2

3、点击“附加”按钮之后,我们能够看到出现如下界面

                                                                                          图3

4、点击“添加”按钮,打开要导入的数据库,然后点击确定按钮,出现如下图所示结果,我们能够清楚地看到数据库已经导入到SQLServer2005中

                                                              

                                                                                                           图4

5、选中已经导入的数据库,如下所选中的文件,右键点击,出现下拉列表,选中“任务->分离”,之后出现如下界面,点击确定:

                                                                                                                                       图5

6、点击确定之后出现如下图所示界面,之前导入的文件已经不见,此时已经完成了转化的工作:

 

                                                                                       

                                                                                                                  图6

7、接下来我们只需将分理处的文件拷贝到自己所使用的环境,也就是装有SQLServer2014版本的操作系统,继续进行导入工作,如下图所示:

                                                                     

                                                                                                       图7

8、点击“附加”之后,我们能够看到和SQLServer2005一样的导入界面,如下图所示

                                                                                                                        图8

9、按照SQLServer2005导入的方法导入即可,这样我们就完成了附加数据库时由于版本不一致导致的出错问题,即数据库的升级问题。

注:

以下是查询到的Sql Server2012以前的微软所有 Sql Server数据库的内部版本号列表: (Sql Server2012数据库的内部版本号为 706)

Target SQL Server Version

Source SQL Server Version

Internal Database Version

SQL Server 2008 R2

SQL Server 2008 R2

665

SQL Server 2008

661

SQL Server 2005 with vardecimal enabled

612

SQL Server 2005

611

SQL Server 2000

539

SQL Server 2008

SQL Server 2008

661

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 2000

539

SQL Server 7

515

SQL Server 2005

SQL Server 2005

611

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

 

通过以上表,我们就可以很快理解这个错误提示了。如果要查看Sql Server的内部版本号,也可以通过下面的Sql句来查看: 

SELECT DATABASEPROPERTYEX('MASTER','VERSION')

二、权限问题

在导入数据库时,出现如下所示问题

                              

                                                                                               图1

这是由于权限问题,即Windows系统权限与SQLServer数据库之间的权限,对于这种问题,我们有以下解决办法

(一):修改权限

1、对于jspjiaoshidanganxns_Data.MDF的数据库文件,右键选中点击属性,选择TAB标签“安全”,如下图所示,选中“Authentiated Users”点击编辑按钮:

                                       

                                                                                           图2

2、接着出现如下所示界面,赋予用户完全控制命令,点击“应用”,“确认”按钮

                                               

                                                                                              图3

3、对于jspjiaoshidanganxns_Log.LDF文件同样使用上述方法进行操作,然后进行导入即可顺利完成

(二)复制到SQLServer数据文件夹

1、如下图所示将需要导入的数据库复制到DATA文件夹下,其路径为安装路径下的:G:\\SQL Server2014\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA

 

2、接着进行导入即可顺利完成导入工作

 

以上就是SQLServer附加时常见的问题



以上是关于SQLServer附加数据库失败的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库附加失败sql server2005 附加的数据库文件都是只读的

sqlserver出现数据库不能附加怎么回事

我使用SQL server 2008附加2005的数据库,但是出现错误!

数据库问题,用SQL server 2012 附加 SQL server 2000 的数据库文件,出现如下提示

sqlserver2008怎么附加sql2005数据库

SQL server 2005数据库安装失败